vb decompile help

Discussion in 'Реверсинг' started by lis84, 1 Dec 2009.

  1. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    ГГ. Собсно такой вопросец.
    Озадачился я зачем то прогой http://lancer.ho.ua/Fugihhuio.exe

    Она разумеется упакована. Но распаковалась быстренько, и под ней оказался старый добрый вижл васик.

    Вооот, тут начались траблы.
    Ибо декомпилятор генерит какой то дикий код.
    Регистрация сводится к тому что прога генерит aes файл (яшка яйцами поклялся что это алгоритм шифрования), в ответ на этот файл автор божиццо отправить файл ключ.

    http://letitbit.net/download/9124.926b68a81db5a6c47d1d7f164/unpacked.rar.html
    Собсно распакованное файло. Внимание, авира на сам распаковщик и на его результат материццо это это вирьё.

    Вооот. Потом суём файло в декомпилятор, и получаем вот такую штуку. Вот тут трындец. Вроде всё нужно еесть, но ничерта не могу понять в каком месте проверяется ключ, и каким вообще образом :(.

    собсно декомпиленый проект
    http://letitbit.net/download/8456.d8974c02d3d8c8cc493ef4344/decompiled.rar.html

    Хто нить в базике шарит. Поясните как в этом копаться.
     
    #1 lis84, 1 Dec 2009
    Last edited: 2 Dec 2009
  2. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    вот когда научишься заливать на нормальные обменники, тогда возможно и помогут
     
  3. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    Чем тебе этот не нравитцо?
    Или не разглядел батон скачать бесплатно?
    Щас любой обменник минуту ждать заставляет. Этот хоть скорость вроде не режет.
     
  4. InFlame

    InFlame Banned

    Joined:
    27 Oct 2008
    Messages:
    207
    Likes Received:
    31
    Reputations:
    0
    Почему название темы не в тему темы? И не любой обменник заставляет ждать минуту.

    По теме. Совеутю не декомпилировать, а дизассемблировать, если, конечно, знаний достаточно. Если нет, то курите маны.
     
    #4 InFlame, 1 Dec 2009
    Last edited: 1 Dec 2009
  5. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    Эммм, с каких пор стало проще дизассемблить прогу, которая написанна на языке хранящим кучу данных о структуре? Извините конечно, но совет не в тему.

    Вы ещё .net посоветуйте дизассемблировать а не декомпилировать.
     
    1 person likes this.
  6. root_sashok

    root_sashok Elder - Старейшина

    Joined:
    4 Aug 2008
    Messages:
    389
    Likes Received:
    573
    Reputations:
    102
    Помогите плиз мне взломать интернет!
    У меня на свои мозги время-времени нет!
    Так что-уо залью я пинчик на letitbit.net,
    И нафлужу на ачате на 1000 GET!

    А вообще, ТС, юзай vb-decompiler.org.
     
    2 people like this.
  7. InFlame

    InFlame Banned

    Joined:
    27 Oct 2008
    Messages:
    207
    Likes Received:
    31
    Reputations:
    0
    Я про то, что когда декомпилятор не помогает выручает дизассемблер.
     
    1 person likes this.
  8. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    VB Decompiler отлично декомпилирует. Ищите где открываются файлы *.key
    p.s. противно смотреть на название темы =\
     
  9. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    Для всех кто пишет не посмотрев хотябы декомпилированный проект (уж он то чистый)
    Декомпилированно именно vb-decompiler 7.6

    И именно где эти файлы открываются, и не могу найти :(

    ПыСы. Господа, если вам нечего сказать по делу, хоть не флудите, а то тема уже на 9 сообщений, а кроме флуда нифига нету.
     
    #9 lis84, 2 Dec 2009
    Last edited: 2 Dec 2009
  10. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    Время затраченное на крики к совести реверсеров можно было потратить более продуктивно.
    Code:
    00414E42   PUSH Fugihhui.00404E60 ;  UNICODE ".KEY"
    ....
    00414E9C  CALL Fugihhui.0041DB00
    внутри 41DB00
    0041DC14 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFileO>;  MSVBVM60.__vbaFileOpen
    ...
    0041DDE4  CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCm>;  MSVBVM60.__vbaStrCmp
    ; не обязательно оно, но момент интересный
    .....
    0041DED8 CALL DWORD PTR DS:[<&MSVBVM60.rtcHexVarF>;  MSVBVM60.rtcHexVarFromVar
    
     
  11. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    :) а кто сказал что я сижу сложа руки.
    Спасибо за подсказку.

    Всегда уважал людей которые не флудят когда не знают ответа.

    Можешь сказать как нашёл. Ибо мне нужен не результат, а способ его достижения. Если есть ман, дай пожалуйста линк.

    ПыСы. Пробовал в декомпилёре юзать поиск, но он выдавал что строк не найдено, даже если искал строку которая была тут же в нём и открыта.
     
  12. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    Классика

    Даже не зная правильного ответа сначала, мысль у меня была верной. В olly нашли строку по сочетанию .key, нашли "code xref" на строку, вот мы и на месте.
    Декомпилятор лишь подтвердил мою мысль. Код не был превращен в vb "кашу", что позволило более менее разглядеть логику. Вот и все, ничего мудреного.
    p.s. Декомпилятором искать строки - дикость, это почти тоже самое что блокнотом открывать exe и dll.
     
    #12 neprovad, 2 Dec 2009
    Last edited: 2 Dec 2009
    1 person likes this.
  13. lis84

    lis84 Banned

    Joined:
    28 Apr 2009
    Messages:
    59
    Likes Received:
    10
    Reputations:
    1
    :)
    Щас олькой поковырялся.
    Файл с ключом проверяется с тем же именем что и АES
    В памяти у меня настойчиво висит строка
    0012FD78 |00152F44 UNICODE "WD-WCAPD2050354" что навевает мысль о привязке к винту.

    Вооот. Прога при неверном key файле тихо загибается. Судя по процедуре чтения файла

    0041DC64 . FF15 14114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaGet4>>; MSVBVM60.__vbaGet4

    Автор использует какую то свою структуру, и читает её с файла. (если я правильно понял смысл http://www.firststeps.ru/vba/vbahelp/r.php?24)
    Вооот... пока мысли иссякают, но буду ковырять далее.
    Где то в середине чтения с файла вылазит уникодная TP_INVALID, и собсно программа умирает в муках эксепшнов.

    Чешу затылок дальше.

    UPD. До сравнения строк дошёл после заполнения файла 1 до талого. В памяти при этом висит строка моей кучи еденичек и 0, короче видимо строка на пустоту проверяется

    Потом генерится строка из склеенных кодов символов. Для еденичек это было 313131313131, причём строка это первые 51 символ, а всего в файле данных должно быть гораздо больше, порядка 300 байт. Дойдя до конца строки, падает в эксепшн. Я в растерянности
     
    #13 lis84, 2 Dec 2009
    Last edited: 2 Dec 2009
  14. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    Если не получается раскусить генерацию кода, то что мешает изменить результат функции, как мне показалось он либо целочисленный либо boolean. Если так, то патчим результат, надеясь что результаты "вычислений" нигде не используются. Опять же, чтоб не надеяться на авось, есть бряки аппаратные на чтение\запись :)
     
    1 person likes this.