Сейчас на форуме: zds, kris_sexy (+7 невидимых)

 eXeL@B —› Крэки, обсуждения —› Visual Basic native code
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 31 января 2007 02:14
· Личное сообщение · #1

помогите выбрать отладчик для натив кода
и еще есть ли декомпилятор для него




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 31 января 2007 02:17
· Личное сообщение · #2

HaykTum пишет:
помогите выбрать отладчик для натив кода


Olly Debug

HaykTum пишет:
и еще есть ли декомпилятор для него


Кое в чем может помочь VB Decompiler

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 161.0 (ветеран)
Активность: 0.120
Статус: Участник

Создано: 31 января 2007 06:17
· Личное сообщение · #3

да VB Decompiler наверное самая классна штука, которую я видел! Все по полочкам разложено.



Ранг: 4.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 31 января 2007 07:58
· Личное сообщение · #4

Ну, положим, не все..... ;)
Несколько не так, точнее, совсем не правильно декомпилится в P-Code адрес метода в ThisVCallHresult. Хотя, это может быть только в лайт варианте? Мешает это сильно, но не смертельно - в связке с IDA разобрать можно.
Для натив кода вполне годится все та же IDA. Прототипы ф-ций из msvbvm60.dll недокументированы, но иногда интуитивно понятны, а иногда приходится писать вспомогательную прожку, но со временем набираются.
Разобраться с вызовами методов и аксессоров ВБшных контролов поможет OleView и на 90% vb6.olb.
В общем, если нет VB Decompiler Pro, то один раз изрядно и долго попотеть придется.

GPcH, Pro версия для натив кода насколько приближает к цели? Есть ли там разбор методов объектов по библиотекам типов (хотя бы для "встроенных" в ВБ контролов), есть ли нормально построенные vtable для "пользовательских" классов и контролов? А то сам листинг-то без разницы что IDA, что Лайт, разве что иерархию объектов выстраивает.



Ранг: 115.1 (ветеран), 3thx
Активность: 0.070
Статус: Участник

Создано: 31 января 2007 08:27
· Личное сообщение · #5

entusiast пишет:
Ну, положим, не все..... ;)


почти цитата: "а что вы хотели нахаляву то" ))



Ранг: 123.0 (ветеран), 10thx
Активность: 0.060
Статус: Участник

Создано: 31 января 2007 08:27
· Личное сообщение · #6

Пользовал как-то P32Dasm. Он бесплатен. Все что надо есть. Возможность патчинга тоже. Что еще надо?

-----
.[ rE! p0w4 ].




Ранг: 36.0 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 31 января 2007 08:37
· Личное сообщение · #7

Ultras Это надо когда хочеться исходники
Вот тут как -то прога попалась...ну есть желание воткнуть туда кое-что и вспомнил сразу- GPcH &__
Только прога -то бесплатная и Pro никак не окупиться.Да еще неизвестно можно ли в бейсике динамически менять переменные окружения.Там сям набрал исходников - кое-что добавил и готово...и бесплатно...и на С++




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 31 января 2007 09:33
· Личное сообщение · #8

entusiast пишет:
Несколько не так, точнее, совсем не правильно декомпилится в P-Code адрес метода в ThisVCallHresult. Хотя, это может быть только в лайт варианте?


Это будет только в версии 3.2 (даже в Lite). На ThisVCallHresult было потрачено море времени из-за сложности его работы.

entusiast пишет:
GPcH, Pro версия для натив кода насколько приближает к цели?


Вообще Pro версия ориентировалась в основном на P-Code, его она разбирает почти до исходника. Что касается натив кода, то на данный момент начата работа и с ним. А именно разрабатывается эмулятор, который вписывает с API их параметры плюс уже декомпилируются пара команд в нормальный код. Но это долгий путь разработок, который я только начинаю.

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 111.1 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 31 января 2007 13:59
· Личное сообщение · #9

Есть ещё такая вещь - Semi VB Decompiler. Раньше он был бесплатный, щас вроде платный. Могу залить куда-нить если надо. ИМХО тоже очень неплохая весчь. Есть и исходники кстати. Написан сам на VB.

-----
The truth is out of there...




Ранг: 36.0 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 31 января 2007 14:29
· Личное сообщение · #10

LumenЕго исходники нерабочие Semi VB Decompiler - бесплатный(для тестирования) и кучей багов был то же почти не рабочий до выхода коммерческой версии .



Ранг: 4.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 февраля 2007 00:31
· Личное сообщение · #11

GPcH, на самом деле, там ничего сложного нет. Надо только this считать от правильного места и опираясь на GUID компонента выстроить его базовый vtable. Все остальные предпосылки у Вас уже наработаны при декомпиляции форм и контролов. Точно также и все This-calls. Гораздо сложнее с вызовами через IDispatch, я пару раз такое видел....
У меня вопрос другой, что там происходит при количестве объектов на форме >0х100 штук - мне просто не попадались такие, а самому столько накидывать, честно говоря, лень
И еще. Для User Control-ов где можно подцепить инфу об их GUID-aх, чтобы потом можно было их идентивицировать? На вб-декомпильном форуме ничего вразумительного не заметил (хотя, может, проглядел)....
Это надо мне НЕ для написания еще одного декомпилера, а для ручной работы в IDA... Привычнее она как-то.

__, Я и не имел в виду все и на халявку. В Лайт версии, понятное дело, что сырца не вылезет. Но и с ВБ столкновения не часты и бесплатны, потому не окупится у меня Pro никогда.




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 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 версию необязательно покупать за доллары, можно при желании и заработать. Плагин какой нибудь мощный и полезный написать к примеру. Но это все обговаривается лично.

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 4.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 февраля 2007 05:28
· Личное сообщение · #13

GPcH, Ну, а в чем проблема msvbvm60.dll открыт для всех желающих.
GPcH пишет:
entusiast пишет:
Гораздо сложнее с вызовами через IDispatch
В псевдокоде?

как ни странно, да. Имя метода было в Constant Pool. Только я не помню что это был за компонент.

GPcH пишет:
А что должно произойти? У меня зашит лимит в 999, этот порог ни одна программа еще не превысила.

Дело в построении vtable. Там сначала интерфейс компонента валяется, потом ровно 0x100 "переходников" для получения интерфейса "дочернего" объекта, как-то текстБокс, Лейбл и т.п. А потом уже идет 1 в 1 EventLinkArray, тот что из OptionalInfo доступен...
Кстати, очень интересен механизм этого переходника - красиво в msvbvm60.dll нарисовано...
А вот что произойдет, если этих дочек будет больше - фиг знает. Может, также как и с псевдокодами - двухступенчатая выборка, но..... фиг знает.
Ну, например, для формы доступ к Таймеру, листинг IDA:

mov ecx, [edi]
push edi
call [ecx+FCSIntro_vt.VB.Timer.TmrRegister] ; было call dword ptr [ecx+300h]
/*
Вот тут-то собака и порылась.
Как известно, размер vtable для VB.Form равен 0х2F8,
Евенты же начинаются намного дальше.
Экспериментально установил, что
1. call [this+sizeof(Vtable)] отдает сам объект, видимо, этот результат можно юзать как this.
2. Евенты следуют в порядке написания (как в EventLinkArray) и начинаются ровно через 100h dword-ов после окончания интерфейса контейнера. Думаю, что если унаследоваться от Таймера, ситуация будет аналогична.
3. Class - прямой потомок IDispatch
*/
lea edx, [ebp+pObj]
push eax
push edx
call ds:__vbaObjSet
mov edi, eax
push 0FFFFFFFFh
push edi
mov eax, [edi]
call [eax+_Timer.put_Enabled] ;было call dword ptr [eax+5Ch]

Вот и вопрос был - "А что будет?"....

2 All:
Кстати, если не пользоваться форм-декомпилером, то конечный объект можно в 95% случаев узнать из следующего кода (в оригинале оно подряд)

cmp eax, ebx
fnclex
jge short loc_48646C
push 5Ch //Это Raw смещение на метод.
push offset stru_4355BC // Вот тут и есть GUID того интерфейса.
push edi
mov edi, ds:__vbaHresultCheckObj
push eax
call edi ; __vbaHresultCheckObj
jmp short loc_486472





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 01 февраля 2007 06:07
· Личное сообщение · #14

Для натив-кода достаточно OllyDbg, вполне нормально дебажится. Для п-кода да, нужен декомпилер. ГПЧ сделал реальную вещь, аналогов в настоящее время нету. Остальное всё шлак.



Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 февраля 2007 06:19
· Личное сообщение · #15

а кто ни буть может скинуть VB Decompiler Pro




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 01 февраля 2007 06:32
· Личное сообщение · #16

HaykTum
вот умора =)) покупай или юзай лайт

-----
Тут не могла быть ваша реклама




Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 февраля 2007 06:57
· Личное сообщение · #17

у меня лайт есть токо он не помогает



Ранг: 4.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 01 февраля 2007 07:39
· Личное сообщение · #18

HaykTum, смотря что ты хочешь получить от декомпилятора.
В Лайт версии - декомпилятор форм+дизассемблер+ некоторое разгребание ссылок. По крайней мере, строки определяет на порядок лучше, чем та же IDA. А исходного кода из native тебе, имхо, никто не сделает автоматически.
А отлаживать стоит тем инструментом, к которому есть привычка.



Ранг: 39.6 (посетитель), 21thx
Активность: 0.020
Статус: Участник

Создано: 02 февраля 2007 16:30
· Личное сообщение · #19

GPcH
не преувеличивай о сложности ThisVCallHresult )) , впрочем у каждого свои грабли.

а если завалишь натив бейсика хотя бы до уровня который получается для пкода, то бонусом получишь декомпиль visual C



Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 03 февраля 2007 02:02
· Личное сообщение · #20

народ а кто может помочь с vb decompiler pro очень нужен




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 03 февраля 2007 02:37
· Личное сообщение · #21

HaykTum пишет:
народ а кто может помочь с vb decompiler pro очень нужен

Может помочь GPcH.




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 03 февраля 2007 09:43
· Личное сообщение · #22

HaykTum

Лови:

rapidshare.com/files/14738563/vb_decompiler_pro_v3.2.rar.html

-----
Research For Food





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 03 февраля 2007 10:29
· Личное сообщение · #23

Если надо, могу ещё stripper v2.13 beta 11 выложить кому надо

-----
Research For Food





Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 03 февраля 2007 11:03
· Личное сообщение · #24

сам еще не качал, но.. если не фейки, то есть ли разрешение делиться?

-----
Тут не могла быть ваша реклама





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 03 февраля 2007 11:05
· Личное сообщение · #25

lord_Phoenix пишет:
сам еще не качал, но.. если не фейки, то есть ли разрешение делиться?


конечно фейки

з.ы. я тоже коян люблю

-----
[nice coder and reverser]





Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 03 февраля 2007 11:14
· Личное сообщение · #26

так делать - минимум не этично, топик стартер ведь надеялся. реально же, советую топик стартеру написать гпч - авось и поможет ;)

-----
Тут не могла быть ваша реклама





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 03 февраля 2007 11:32
· Личное сообщение · #27

lord_Phoenix пишет:
так делать - минимум не этично, топик стартер ведь надеялся. реально же, советую топик стартеру написать гпч - авось и поможет ;)


Да топикстартеру же для нативкода тулза нужна - а тут я врядли чем помогу - сам щас только начинаю с нативом ковыряться

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 4.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 февраля 2007 12:22
· Личное сообщение · #28

sen, не только С, вообще любого алгоритмического ЯВУ. но, насколько я понял по поискам в нете подобных тулзов, это потянет на что-то вроде нобелевки.
Блин, чтоб рассекать листинг в сырцы нужно постичь ДАО....



Ранг: 56.3 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 03 февраля 2007 12:41
· Личное сообщение · #29

entusiast пишет:
Блин, чтоб рассекать листинг в сырцы нужно постичь ДАО....


Лучше выуычить ассемблер, попрактиковаться с годик в иде и смотреть на листинг как на сорец



Ранг: 39.6 (посетитель), 21thx
Активность: 0.020
Статус: Участник

Создано: 04 февраля 2007 16:46
· Личное сообщение · #30

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


. 1 . 2 . >>
 eXeL@B —› Крэки, обсуждения —› Visual Basic native code
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати