eXeL@B —› Крэки, обсуждения —› Visual Basic native code |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 31 января 2007 02:14 · Личное сообщение · #1 |
|
Создано: 31 января 2007 02:17 · Личное сообщение · #2 |
|
Создано: 31 января 2007 06:17 · Личное сообщение · #3 |
|
Создано: 31 января 2007 07:58 · Личное сообщение · #4 Ну, положим, не все..... ;) Несколько не так, точнее, совсем не правильно декомпилится в P-Code адрес метода в ThisVCallHresult. Хотя, это может быть только в лайт варианте? Мешает это сильно, но не смертельно - в связке с IDA разобрать можно. Для натив кода вполне годится все та же IDA. Прототипы ф-ций из msvbvm60.dll недокументированы, но иногда интуитивно понятны, а иногда приходится писать вспомогательную прожку, но со временем набираются. Разобраться с вызовами методов и аксессоров ВБшных контролов поможет OleView и на 90% vb6.olb. В общем, если нет VB Decompiler Pro, то один раз изрядно и долго попотеть придется. GPcH, Pro версия для натив кода насколько приближает к цели? Есть ли там разбор методов объектов по библиотекам типов (хотя бы для "встроенных" в ВБ контролов), есть ли нормально построенные vtable для "пользовательских" классов и контролов? А то сам листинг-то без разницы что IDA, что Лайт, разве что иерархию объектов выстраивает. |
|
Создано: 31 января 2007 08:27 · Личное сообщение · #5 |
|
Создано: 31 января 2007 08:27 · Личное сообщение · #6 |
|
Создано: 31 января 2007 08:37 · Личное сообщение · #7 Ultras Это надо когда хочеться исходники Вот тут как -то прога попалась...ну есть желание воткнуть туда кое-что и вспомнил сразу- GPcH &__ Только прога -то бесплатная и Pro никак не окупиться.Да еще неизвестно можно ли в бейсике динамически менять переменные окружения.Там сям набрал исходников - кое-что добавил и готово...и бесплатно...и на С++ |
|
Создано: 31 января 2007 09:33 · Личное сообщение · #8 entusiast пишет: Несколько не так, точнее, совсем не правильно декомпилится в P-Code адрес метода в ThisVCallHresult. Хотя, это может быть только в лайт варианте? Это будет только в версии 3.2 (даже в Lite). На ThisVCallHresult было потрачено море времени из-за сложности его работы. entusiast пишет: GPcH, Pro версия для натив кода насколько приближает к цели? Вообще Pro версия ориентировалась в основном на P-Code, его она разбирает почти до исходника. Что касается натив кода, то на данный момент начата работа и с ним. А именно разрабатывается эмулятор, который вписывает с API их параметры плюс уже декомпилируются пара команд в нормальный код. Но это долгий путь разработок, который я только начинаю. ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! |
|
Создано: 31 января 2007 13:59 · Личное сообщение · #9 |
|
Создано: 31 января 2007 14:29 · Личное сообщение · #10 |
|
Создано: 01 февраля 2007 00:31 · Личное сообщение · #11 GPcH, на самом деле, там ничего сложного нет. Надо только this считать от правильного места и опираясь на GUID компонента выстроить его базовый vtable. Все остальные предпосылки у Вас уже наработаны при декомпиляции форм и контролов. Точно также и все This-calls. Гораздо сложнее с вызовами через IDispatch, я пару раз такое видел.... У меня вопрос другой, что там происходит при количестве объектов на форме >0х100 штук - мне просто не попадались такие, а самому столько накидывать, честно говоря, лень И еще. Для User Control-ов где можно подцепить инфу об их GUID-aх, чтобы потом можно было их идентивицировать? На вб-декомпильном форуме ничего вразумительного не заметил (хотя, может, проглядел).... Это надо мне НЕ для написания еще одного декомпилера, а для ручной работы в IDA... Привычнее она как-то. __, Я и не имел в виду все и на халявку. В Лайт версии, понятное дело, что сырца не вылезет. Но и с ВБ столкновения не часты и бесплатны, потому не окупится у меня Pro никогда. |
|
Создано: 01 февраля 2007 03:46 · Личное сообщение · #12 entusiast пишет: GPcH, на самом деле, там ничего сложного нет. Если знать как работает интерпретатор псевдокода - да, а если каждый опкод исследовать вручную - все усложняется. entusiast пишет: Надо только this считать от правильного места А что там считать - там явно указан индекс на Vtable. Только вот правильно составить эту Vtable не так просто. Задача эта уже решена, но в силу того что у меня план один билд в месяц - выйдет декомпиль v3.2 не раньше второй половины февраля. entusiast пишет: Гораздо сложнее с вызовами через IDispatch В псевдокоде? entusiast пишет: У меня вопрос другой, что там происходит при количестве объектов на форме >0х100 штук - мне просто не попадались такие, а самому столько накидывать, честно говоря, лень А что должно произойти? У меня зашит лимит в 999, этот порог ни одна программа еще не превысила. entusiast пишет: И еще. Для User Control-ов где можно подцепить инфу об их GUID-aх, чтобы потом можно было их идентивицировать? На вб-декомпильном форуме ничего вразумительного не заметил (хотя, может, проглядел).... Надо разбираться. Я пока с этим не занимался, потому помочь не смогу. entusiast пишет: с ВБ столкновения не часты и бесплатны, потому не окупится у меня Pro никогда Дык Pro версию необязательно покупать за доллары, можно при желании и заработать. Плагин какой нибудь мощный и полезный написать к примеру. Но это все обговаривается лично. ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! |
|
Создано: 01 февраля 2007 05:28 · Личное сообщение · #13 GPcH , Ну, а в чем проблема msvbvm60.dll открыт для всех желающих.
GPcH пишет: entusiast пишет: Гораздо сложнее с вызовами через IDispatch В псевдокоде? как ни странно, да. Имя метода было в Constant Pool. Только я не помню что это был за компонент. GPcH пишет: А что должно произойти? У меня зашит лимит в 999, этот порог ни одна программа еще не превысила. Дело в построении vtable. Там сначала интерфейс компонента валяется, потом ровно 0x100 "переходников" для получения интерфейса "дочернего" объекта, как-то текстБокс, Лейбл и т.п. А потом уже идет 1 в 1 EventLinkArray, тот что из OptionalInfo доступен... Кстати, очень интересен механизм этого переходника - красиво в msvbvm60.dll нарисовано... А вот что произойдет, если этих дочек будет больше - фиг знает. Может, также как и с псевдокодами - двухступенчатая выборка, но..... фиг знает. Ну, например, для формы доступ к Таймеру, листинг IDA:
Вот и вопрос был - "А что будет?".... 2 All: Кстати, если не пользоваться форм-декомпилером, то конечный объект можно в 95% случаев узнать из следующего кода (в оригинале оно подряд)
|
|
Создано: 01 февраля 2007 06:07 · Личное сообщение · #14 |
|
Создано: 01 февраля 2007 06:19 · Личное сообщение · #15 |
|
Создано: 01 февраля 2007 06:32 · Личное сообщение · #16 |
|
Создано: 01 февраля 2007 06:57 · Личное сообщение · #17 |
|
Создано: 01 февраля 2007 07:39 · Личное сообщение · #18 HaykTum, смотря что ты хочешь получить от декомпилятора. В Лайт версии - декомпилятор форм+дизассемблер+ некоторое разгребание ссылок. По крайней мере, строки определяет на порядок лучше, чем та же IDA. А исходного кода из native тебе, имхо, никто не сделает автоматически. А отлаживать стоит тем инструментом, к которому есть привычка. |
|
Создано: 02 февраля 2007 16:30 · Личное сообщение · #19 |
|
Создано: 03 февраля 2007 02:02 · Личное сообщение · #20 |
|
Создано: 03 февраля 2007 02:37 · Личное сообщение · #21 |
|
Создано: 03 февраля 2007 09:43 · Личное сообщение · #22 |
|
Создано: 03 февраля 2007 10:29 · Личное сообщение · #23 |
|
Создано: 03 февраля 2007 11:03 · Личное сообщение · #24 |
|
Создано: 03 февраля 2007 11:05 · Личное сообщение · #25 |
|
Создано: 03 февраля 2007 11:14 · Личное сообщение · #26 |
|
Создано: 03 февраля 2007 11:32 · Личное сообщение · #27 lord_Phoenix пишет: так делать - минимум не этично, топик стартер ведь надеялся. реально же, советую топик стартеру написать гпч - авось и поможет ;) Да топикстартеру же для нативкода тулза нужна - а тут я врядли чем помогу - сам щас только начинаю с нативом ковыряться ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! |
|
Создано: 03 февраля 2007 12:22 · Личное сообщение · #28 |
|
Создано: 03 февраля 2007 12:41 · Личное сообщение · #29 |
|
Создано: 04 февраля 2007 16:46 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Крэки, обсуждения —› Visual Basic native code |