[Source] All Combine 2.0.2 [MNTL] - (D3c0mp1l3d By PC-RET)

Тема в разделе "Delphi", создана пользователем Чёрнокнижник, 16.02.18.Просмотров: 364

  1. Чёрнокнижник Администратор | Повелитель китайцев

    Чёрнокнижник

    Администратор

    341 сообщения
    295 симпатий
    4
    розыгрышей
    6 лет с нами
    6 месяцев с нами
    3 дня с нами
    [​IMG]

    - ВАЖНО: Я заменила 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...
    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;
    - Я надеюсь что не найдется людей, кто решится писать на этом говне, выложено в ознакомительных целях и в целях чтобы показать что из себя представляют софты RC-SFT на самом деле и на чем они пишут.


    P.S. Спасибо за внимание, с уважением @K4RKON.


    Скрытый контент. Для просмотра Вы должны быть зарегистрированным участником