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 Также буду рад всяческим отзывам о релизе и багрепортам.
Наконец-то! Возможность сохранения результата! Процедуры в виде дерева содержат только одну ветвь? при запуске прога теряет фокус на проце с HT P.S. Asm plugin SDK is coming
> Буду очень признателен, если кто нибудь переведет > Plugins SDK с дельфей на другие языки, особенно Visual C++ Должно быть примерно так. Как вызывается callback проверить не могу - нет ниодной VB'шной проги под руками. 1471834403__vbd_text.zip
Dr.Golova Посмотрел сорс. Все отлично. Правда кое что недоделано, а именно, ты вместо: Код (Text): var wStr: WideString; begin wStr:=GetValue(PluginEngine,GetVBProject,0,0); Написал: Код (Text): CHAR* Text; Text = VBDCallBack(vltGetVBProject, 0, 0, NULL); CHAR - это не юникод. А VB возвращает плагину все строки в юникоде. Я бы сам это доделал, но я не знаю как юзать юникод в сях, потому объяви сам как надо плиз. Плюс ты ниже пытаешься записать в считанный буфер так: Код (Text): strcpy(TmpBuf, "Small Part Of Project Text:\n\n"); Len = strlen(TmpBuf); memcpy(TmpBuf + Len, Text, 128); TmpBuf[Len + 128] = 0; VB это не воспримет поэтому надо делать примерно так: Код (Text): Text+="Small Part Of Project Text:\n\n" TmpBuf = VBDCallBack(vltSetVBProject, 0, 0, Text); То есть vltGetVBProject - для чтения строки, а vltSetVBProject для записи. Буду благодарен, если доработаешь сорс с учетом этих поправок
Уже исправил в 2.1 и много чего еще исправил, в частности работу с "For Each .. Next" конструкциями, индексацией стринг референсов при загрузке из базы и еще много чего. В общем жду пока DrGolova пофиксит баги в VC примере и буду делать релиз 2.1. Кстати в новом релизе будет возможность декомпилять по смещению (точнее она уже есть, осталось доделать релиз).
при сохранении в бд большой декомпилированной программы на экране прогресс в виде ххх/nnn (у меня nnn=300), число ххх возрастает, и при достижении 200 с чем-то возникает runtime error без каких-либо описаний. возможно переполнение какого-нибудь счетчика/индекса.
http://webfile.ru/719088 ошибку описывал по памяти, вероятно ошибся. а может и из-за того, что другой компутер: на этом компе счетчих "Saving... xxx/300" доходит до конца, а потом уже "Runtime error (6)"
У меня в 2.1 версии все ok... наверное в 2.0 баг был. Но файл офигенный - я думал что самая огромная прога на VB это авторИт. Оказалось нет. Спасибо за сей экземпл. PS: Кстати парни, может всеже ктонить поможет с SDK для асма?
Jupiter Помоги если не сложно... надеюсь твоя помошь поможет комунить написать рульный плагин, а может быть и ты такой напишешь
Версия 2.0 - последняя? Мне с Delphi переделывать? у меня в папке Plugins SDK пример только для Delphi... c дельфи я знаком оч. поверхностно - так что буду разребать
Ну да... если не считать бету 2.1 которая щас тестится. Но там в плане плагинов ничего не измениться. Да
ты можешь написать отдельный текстовый файл с описанием функций и параметров а-ля MSDN или попроще? как я понял, две обязательные для экспорта функции - VBDecompilerPluginName и VBDecompilerPluginLoad остальные функции типа GetValue/SetValue - зависят от реализации я прально понял?
Могу, но времени чето на подробную доку никак найти не могу. Ты правильно понял. Фунциям передается адресс CallBack функции декомпиля, которая всем рулит взависимости от передаваемых параметров. МОжешь посмотреть порт на VC доктора головы, правда он про юникод забыл - как я писал
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