Сейчас на форуме: Rio, johnniewalker, vsv1 (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Как сопоставить IDL-описание с реальным кодом? |
Посл.ответ | Сообщение |
|
Создано: 14 июня 2011 00:10 · Личное сообщение · #1 Есть библиотека (COM), в описании TYPELIB четко видно необходимую функцию - SetLicenseKey: Code:
как найти ее адрес? Сама P.S. Слышал, есть плагин для IDA, который реализует эту функциональность, но разобраться не смог (под 5.5 не заводится). |
|
Создано: 14 июня 2011 00:25 · Личное сообщение · #2 Методы COM-интерфейсов располагаются в таблице в том же порядке, в каком объявлены. Берём vptr интерфейса и отсчитываем n-ю функцию (не забываем считать все m функций всех интерфейсов-предков)... Смотреть сам не буду - там ничего сложного Есть вероятность ошибки, поэтому лучше проверить в отладчике. ----- IZ.RU |
|
Создано: 14 июня 2011 00:35 · Личное сообщение · #3 |
|
Создано: 14 июня 2011 00:53 · Личное сообщение · #4 MS утилиту первым делом посмотрел, есть проблема: ComTypeLibDump - дампит без проблем саму TLB, но не показывает оффсетов CoClassSyms - которая должна генерить DBG/MAP молчит, ничего не выдает Пробовал еще утилитку с wasm'a: com_va - выдает лишь кусок дампа (часть пропертей), функции с оффсетами не показывает @DenCoder, крайне нежелательно через отладчик идти, либа буйная, у меня столько опыта не будет. В любом случае, спасибо. |
|
Создано: 14 июня 2011 01:19 · Личное сообщение · #5 |
|
Создано: 14 июня 2011 01:23 · Поправил: uinor · Личное сообщение · #6 yanus0 пишет: Написать маленькое приложение которое будет вызывать нужную функцию, под отладчиком посмотреть где она находится и все. К сожалению, испытываю проблемы с CoCreateInstance и не только я (только что обнаружил, что все софтины падают там же), судя по всему, есть проверка на "создателя" и какие-то еще хитрые трики. @DenCoder, получил оффсет (0xD4) этого метода, но есть проблема с vptr, ибо CoCreateInstance проваливается. Использую Code:
Получил описание функции (первый $$$), поле oVft на руках, но CoCreateInstance (второй $$$) эпично проваливается. Аналогично пробовал породить ICMap (задолго до) еще в своем проекте - бесполезно, падает. Вываливается с REGDB_E_CLASSNOTREG. |
|
Создано: 14 июня 2011 02:29 · Личное сообщение · #7 мож разберёшся - нашел из старого ComHooks 1.0 - COM hooking, COM hooks, DLL loading - before asking questions and reporting problems have a look at this Update list, re-download ComHooks and read documentation and all examples carefully. http://web.archive.org/web/20030419031831/http://www.anticracking.sk/elicz/export/CHUpdate.txt http://web.archive.org/web/20030419031831/http://www.anticracking.sk/elicz/export/CH10.ZIP |
|
Создано: 14 июня 2011 03:09 · Поправил: uinor · Личное сообщение · #8 Ratinsh пишет: мож разберёшся - нашел из старого Хуки, к сожалению, ничем не помогут. Ровно, как и мониторинг в целом. У меня нет приложения-инициатора. Буквально пару минут назад попробовал его создать. Копнул чуть поглубже, увидел в AspMapUtil.dll экспортированную функцию CreateUtil. Посмотрел нутро - там одним из параметров передается GUID, он сравнивается со списком и в зависимости от GUID'a порождается класс + возвращается интерфейс. Первое же условие - проверка на {5C2EA2B2-4F5D-11D4-A1CF-C1BD8A54860E} (это GUID ICMap'a, чей метод SetLicenseKey я анализирую). Набросал небольшую утильку: Code:
Теперь загнал в ольгу, сделал Step Into на переходе (с учетом оффсета 0xD4, который) в тело AspMapUtil.dll, но меня ждало разочарование - влетаю 100% не туда, куда нужно (100146D0). В чем может быть трабла? Upd1: Проверил работоспособность методов ICMap'a - все работают. К примеру, Code:
|
|
Создано: 14 июня 2011 04:28 · Личное сообщение · #9 |
|
Создано: 14 июня 2011 05:07 · Личное сообщение · #10 |
|
Создано: 14 июня 2011 14:14 · Личное сообщение · #11 |
eXeL@B —› Крэки, обсуждения —› Как сопоставить IDL-описание с реальным кодом? |