Новогодний релиз VB декомпилера

Тема в разделе "WASM.RESEARCH", создана пользователем GPcH, 21 дек 2005.

  1. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136
    VB Decompiler by GPcH

    Новогодний релиз декомпилятора для VB!

    Парни, старался как мог, чесслово :) Времени ушло масса, но думаю результаты стоят того.



    Долгожданные возможности:

    1. Декомпиляция всех стандартных объектов (кроме Ole)

    2. Древовидное представление процедур

    3. Общий String Reference для всех модулей

    4. Поиск как в активном окне, так и по всему декомпиленному проекту

    5. Деобфускатор (без комментариев)

    6. Возможность сохранения декомпилированных

    результатов в DB файл с возможностью его загрузки в следующий раз для продолжения исследования. Этот файл можно к примеру послать компаньону, при совместной работе.

    7. Множество новых команд в Plugin API



    Все вышенаписанное уже умеет Lite версия, которая предоставляется бесплатно.



    Скачать VB Decompiler



    Буду очень признателен, если кто нибудь переведет Plugins SDK с дельфей на другие языки, особенно Visual C++. Если кто может помочь - пишите на admin [собака] dotfix.net



    Также буду рад всяческим отзывам о релизе и багрепортам.
     
  2. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Наконец-то! Возможность сохранения результата!

    Процедуры в виде дерева содержат только одну ветвь?



    при запуске прога теряет фокус на проце с HT



    P.S. Asm plugin SDK is coming :)
     
  3. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    > Буду очень признателен, если кто нибудь переведет

    > Plugins SDK с дельфей на другие языки, особенно Visual C++



    Должно быть примерно так. Как вызывается callback проверить не могу - нет ниодной VB'шной проги под руками.

    [​IMG] 1471834403__vbd_text.zip
     
  4. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136
    Dr.Golova

    Респект! Обязательно посмотрю проверю коллбэки и выложу в следующий релиз





    Не понял :)
     
  5. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136
    Dr.Golova

    Посмотрел сорс. Все отлично. Правда кое что недоделано, а именно, ты вместо:
    Код (Text):
    1. var
    2.  wStr: WideString;
    3. begin
    4.  wStr:=GetValue(PluginEngine,GetVBProject,0,0);


    Написал:
    Код (Text):
    1.   CHAR* Text;
    2.   Text = VBDCallBack(vltGetVBProject, 0, 0, NULL);


    CHAR - это не юникод. А VB возвращает плагину все строки в юникоде. Я бы сам это доделал, но я не знаю как юзать юникод в сях, потому объяви сам как надо плиз. Плюс ты ниже пытаешься записать в считанный буфер так:
    Код (Text):
    1. strcpy(TmpBuf, "Small Part Of Project Text:\n\n");
    2.     Len = strlen(TmpBuf);
    3.     memcpy(TmpBuf + Len, Text, 128);
    4.     TmpBuf[Len + 128] = 0;


    VB это не воспримет поэтому надо делать примерно так:
    Код (Text):
    1. Text+="Small Part Of Project Text:\n\n"
    2. TmpBuf = VBDCallBack(vltSetVBProject, 0, 0, Text);


    То есть vltGetVBProject - для чтения строки, а vltSetVBProject для записи.



    Буду благодарен, если доработаешь сорс с учетом этих поправок
     
  6. Sharp

    Sharp New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2003
    Сообщения:
    143
    Адрес:
    Ukraine
    при запуске прога теряет фокус на проце с HT

    Не только с HT
     
  7. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136


    Уже исправил в 2.1 и много чего еще исправил, в частности работу с "For Each .. Next" конструкциями, индексацией стринг референсов при загрузке из базы и еще много чего. В общем жду пока DrGolova пофиксит баги в VC примере и буду делать релиз 2.1. Кстати в новом релизе будет возможность декомпилять по смещению (точнее она уже есть, осталось доделать релиз).
     
  8. novice2

    novice2 New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    14
    при сохранении в бд большой декомпилированной программы на экране прогресс в виде ххх/nnn (у меня nnn=300), число ххх возрастает, и при достижении 200 с чем-то возникает runtime error без каких-либо описаний. возможно переполнение какого-нибудь счетчика/индекса.
     
  9. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136
    novice2

    можешь прогу эту гденить выложить?
     
  10. novice2

    novice2 New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    14
    http://webfile.ru/719088



    ошибку описывал по памяти, вероятно ошибся. а может и из-за того, что другой компутер:

    на этом компе счетчих "Saving... xxx/300" доходит до конца, а потом уже "Runtime error (6)"
     
  11. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136


    У меня в 2.1 версии все ok... наверное в 2.0 баг был.

    Но файл офигенный - я думал что самая огромная прога на VB это авторИт. Оказалось нет. Спасибо за сей экземпл.



    PS: Кстати парни, может всеже ктонить поможет с SDK для асма?
     
  12. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    GPcH



    могу помочь
     
  13. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136
    Jupiter

    Помоги если не сложно... надеюсь твоя помошь поможет комунить написать рульный плагин, а может быть и ты такой напишешь :)
     
  14. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Версия 2.0 - последняя?

    Мне с Delphi переделывать? у меня в папке Plugins SDK пример только для Delphi...

    c дельфи я знаком оч. поверхностно - так что буду разребать
     
  15. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136




    Ну да... если не считать бету 2.1 которая щас тестится. Но там в плане плагинов ничего не измениться.





    Да :)
     
  16. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    ты можешь написать отдельный текстовый файл с описанием функций и параметров а-ля MSDN или попроще?



    как я понял, две обязательные для экспорта функции - VBDecompilerPluginName и VBDecompilerPluginLoad



    остальные функции типа GetValue/SetValue - зависят от реализации



    я прально понял?
     
  17. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136




    Могу, но времени чето на подробную доку никак найти не могу.





    Ты правильно понял. Фунциям передается адресс CallBack функции декомпиля, которая всем рулит взависимости от передаваемых параметров. МОжешь посмотреть порт на VC доктора головы, правда он про юникод забыл - как я писал
     
  18. GPcH

    GPcH Member

    Публикаций:
    0
    Регистрация:
    2 авг 2004
    Сообщения:
    136
    Released VB decompiler v2.1



    Thats new in lite version:

    - Decompile from offset

    - Icons to main menu

    - Decompile dumped files if NtHeaderSize<>0E

    - Windows 98/NT support

    - Class modules generating is more real now

    - New very fast API decompilation

    - String reference onclose bug



    Thats new in pro version:

    - Decompile "For Each ... Next" construction

    - New encryption algorithm

    - Prototypes of ASProtect and Guardant API (from SDK)

    - Stack engine is improved

    - End procedure bug



    VB decompiler v2.1 by GPcH