Посл.ответ |
Сообщение |
 Ранг: 355.4 (мудрец), 55thx Активность: 0.32↘0 Статус: Uploader 5KRT
|
Создано: 25 апреля 2008 21:24 · Личное сообщение · #1
Здраствуйте. Меня интересует, какой отладчик воспринимает OCX формат?
Суть проблемы:
Устанавливается компонент, который в виде плагина используется в разных программах в его составе
файлы DLL и OCX все рессурсы я проверил находятся и я думаю что проверка в OCX файле.
Его просматриваю в IDA, там есть функции проверки, как их взламать, тоесть существует ли отладчик для
OCX файлов, или приходится хакать в HIEW?
----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes | Сообщение посчитали полезным: |
|
 Ранг: 387.4 (мудрец) Активность: 0.17↘0 Статус: Участник системщик
|
Создано: 25 апреля 2008 21:38 · Поправил: s0larian · Личное сообщение · #2
OCX это просто .dll, то есть PE. Что б отладить, нужен процесс который эту dll загрузит и что-нить вызовет. Для этого обычно пишется маленькая прога, а потом Olly/IDA.
| Сообщение посчитали полезным: |
Ранг: 107.5 (ветеран) Активность: 0.15↘0 Статус: Участник
|
Создано: 26 апреля 2008 16:44 · Личное сообщение · #3
coderess
В олли существует loaddll или dllload точно не помню. он загружает dll в память и потом через пункт меню дебугинг выполняешь call к любой процедуре dll
----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 | Сообщение посчитали полезным: |
 Ранг: 355.4 (мудрец), 55thx Активность: 0.32↘0 Статус: Uploader 5KRT
|
Создано: 26 апреля 2008 22:03 · Личное сообщение · #4
Для этого обычно пишется маленькая прога, а потом Olly/IDA.
Что за прога?
----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes | Сообщение посчитали полезным: |
Ранг: 107.5 (ветеран) Активность: 0.15↘0 Статус: Участник
|
Создано: 26 апреля 2008 22:57 · Личное сообщение · #5
coderess пишет:
Что за прога?
Которая вызовет нужную тебе процедуру.
Вот пример на делфи
var f:function(p1:pchar;p2:bool);
begin
f:=nil;
if (loadlibrary('test.dll'))<>0 then begin
f:=getprocaddres('myproc');
if f<>nil then f('source',false);
end;
end;
----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 | Сообщение посчитали полезным: |
 Ранг: 355.4 (мудрец), 55thx Активность: 0.32↘0 Статус: Uploader 5KRT
|
Создано: 27 апреля 2008 15:34 · Личное сообщение · #6
Скорее псевдокод
Вот рабочий
f: function (p1: PChar; b: Bool): Bool;
procedure Call_OCX(LibName, ProcName: PChar);
var
hModule: THANDLE;
P: FARPROC;
begin
f := NIL;
hModule := LoadLibrary(LibName);
if hModule <> 0 then
p := GetProcAddress(hModule, ProcName);
if p <> NIL then f('GetDlgItemTextA', false);
end;
Только что получается, я вызываю "загрузчик" и его отлаживаю, т.к. на его адресное пространство проецируется OCX библиотека?
----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes | Сообщение посчитали полезным: |
Ранг: 107.5 (ветеран) Активность: 0.15↘0 Статус: Участник
|
Создано: 27 апреля 2008 18:12 · Поправил: Stack · Личное сообщение · #7
*\ошибся/*
----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 | Сообщение посчитали полезным: |
 Ранг: 387.4 (мудрец) Активность: 0.17↘0 Статус: Участник системщик
|
Создано: 28 апреля 2008 19:55 · Поправил: s0larian · Личное сообщение · #8
Stack пишет:
Только что получается, я вызываю "загрузчик" и его отлаживаю, т.к. на его адресное пространство проецируется OCX библиотека?
точняк - в адресное пространство загрузчика подгружается .DLL - это всё один процесс.
только учти что сложность загрузчика зависит от интерфейса либы - иногда это один вызов а иногда целая прога что бы вызвать ту самую последнюю, нужную ф-цию в правильном контексте.
| Сообщение посчитали полезным: |
 Ранг: 355.4 (мудрец), 55thx Активность: 0.32↘0 Статус: Uploader 5KRT
|
Создано: 29 апреля 2008 19:22 · Личное сообщение · #9
Вообщето не пойму, "загрузщик" загружает на свое адресное пространство этот плагин модуль, затем
я через OllyDbg -> "Attach" к процессу, потом вызываю бряки?
Не пойму, объясните по подробнее пожалуйста.
----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes | Сообщение посчитали полезным: |
 Ранг: 387.4 (мудрец) Активность: 0.17↘0 Статус: Участник системщик
|
Создано: 29 апреля 2008 20:24 · Личное сообщение · #10
coderess, пишешь прогу, скажем на Delphi. На форме пара кнопок: "Load DLL" и "Call function". Компилишь, запускаешь. После нажатия "Load DLL" в Olly делаешь Attach to process. Потом "bp your_f_address". Потом жмёшь на "Call function" и вуаля.
| Сообщение посчитали полезным: |
 Ранг: 355.4 (мудрец), 55thx Активность: 0.32↘0 Статус: Uploader 5KRT
|
Создано: 30 апреля 2008 08:48 · Личное сообщение · #11
Я так и делал, только вот приатачится не возможно "Unable to attack process project2"
----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes | Сообщение посчитали полезным: |
Ранг: 107.5 (ветеран) Активность: 0.15↘0 Статус: Участник
|
Создано: 30 апреля 2008 15:09 · Личное сообщение · #12
coderess пишет:
Я так и делал, только вот приатачится не возможно "Unable to attack process project2"
Возможно плагины мешают у меня так было(не помню какой)
----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 | Сообщение посчитали полезным: |
 Ранг: 355.4 (мудрец), 55thx Активность: 0.32↘0 Статус: Uploader 5KRT
|
Создано: 30 апреля 2008 17:40 · Личное сообщение · #13
Stack пишет:
Возможно плагины мешают у меня так было(не помню какой)
И в самом деле плагины, спасибо.
----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes | Сообщение посчитали полезным: |