sellmelagality
VIP
sellmelagality
VIP
- 25 Ноя 2016
- 30
- 82
- ВАЖНО: Я заменила AlphaSkin, так как моя Delphi ругалась на старую версию, оригинальные скины программы лежат в папке AlphaSkinks.
- Недавно листала темы на разных форумах, изучала рынок программ и что вообще сейчас продают и вот наткнулась на соседнем борде на продажу исходника софта All Combine 2.0.2 [MNTL] с ценой кхе-кхе 20 000 рублей... В комплект входят: защита, сорец софта, движок и прочее. Учитывая что я ранее ломала данный софт, мне стало интересно увидеть код, который находится в движке / софте детально. Потратив немного своего времени я провела полную декомпиляцию данной программы и выкладываю ее исходный код.
- Честно большего говна я не встречала еще нигде, так что фагам Object Pascal стоит пройти мимо и даже не заглядывать в эту хрень, а это еще продавалось и продается на рынке... И самое главное за исходник этого гибрида исходного кода кодера N и куска дерьма предлагали цену 20 000 рублей!
- Исходный код программы восстановлен на 80%, соблюдены все "ошибки" отсутствующие TObject.Free, костыли, порядок действий и имена переменных насколько было возможно. В софте полностью восстановлены: Unit1, Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit9. Также исходный код соержит ряд комментариев, на которые прошу не обращать внимание, в частности адреса инструкций из оригинального файла. Из содержимого софта восстановлена работа прокси парсера с сервисов: BestProxies, FineProxy, ProxyElite, ProxyBox. Из содержимого брута восстановлена структура движка программы и авторизации сервисов: Mail, WF, Ubi, VK, OK, D2D, McGame.
- Структура движка и потоков брута максимально сохранена насколько это было возможно, дабы вы понимали за что вы платите деньги и как это г* работает. Обращаю внимание, что лично моих функций в коде только две, которые я написала самостоятельно не выдирая код из отладчика и файла оригинала и это: GenerateHardWareId и GenerateRandomString. Также частично урезала код потока FThread.Execute вырезав оттуда блоки с кучей if else и прочей байды оставив общую структуру кода в неизменном виде. Больше всего меня поразило количество структур try finally end, а в частности Synchronize внутри которого был EnterCriticalSection и в последствии LeaveCriticalSection... Для многих функций оставлены комментарии формата // Sub_XXXXXXXX указывающие на адрес данной процедуры в оригинальном файле и если вы шарите в отладке, можете пойти и посмотреть что я ничего не придумывала и переписывала код со всей его ущербностью обратно в софт. Хайд не обсуждается, так как я тратила личное время на этот кусок говна. И да хайды в теме обнулены, для проверки кода на целостность используйте версию 2.0.2.
P.S. Функциональность без допиливания участков кода не гарантируется, для запуска проекта после компиляции требуется вырезать защиту на Unit5 и авторизацию в программе. По крайней мере я старалась и претензии принимать по факту декомпиляции не буду - не довольны идите лесом мимо темы.
Код:
{-------------------------------------------------------------------------------
Функция: GenerateRandomString
Автор: [PC-RET] Yulya
Дата: 2017.06.17
Входные параметры: strLength: Integer
Результат: string
-------------------------------------------------------------------------------}
function GenerateRandomString(strLength: Integer): string;
const
strArray: string = '0123456789qwertyuiopasdfghjklzxcvbnm';
var
Indexed: Integer;
begin
Result:= '';
Randomize;
for Indexed:= 1 to strLength do
begin
Result:= Result + strArray[RandomRange(Low(strArray), High(strArray))];
end;
end;
Код:
{-------------------------------------------------------------------------------
Функция: GenerateHardWareId
Автор: [PC-RET] Yulya
Дата: 2017.06.16
Входные параметры: Нет
Результат: string
-------------------------------------------------------------------------------}
function GenerateHardWareId: string;
var
aBuffer: array[0..255] of Char;
dwTemp, pdwSerial: DWORD;
Bytes: TBytes;
hardWareHash: string;
ch: Byte;
begin
GetVolumeInformation('c:\', aBuffer, SizeOf(aBuffer), @pdwSerial, dwTemp, dwTemp, nil, 0);
hardWareHash:= MD5(AnsiString(IntToStr(pdwSerial))); Bytes:= BytesOf(hardWareHash);
for ch in Bytes do
begin
Result:= Result + IntToHex(ch, 2);
end;
end;
P.S. Спасибо за внимание, с уважением Yulya.
[HIDE=1]
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
[/HIDE]