Эквивалент вызова GDB в Ollydbg (или другом отладчике Windows)

В GDB я могу вызвать функцию, которая является частью исполняемого файла, который я отлаживаю, введя команду типа call foo("123").

Как мне сделать то же самое в OllyDbg (или, возможно, в другом отладчике Windows)?


person mikeazo    schedule 07.11.2012    source источник
comment
ollydbg не поддерживает это изначально, однако вы можете сделать это с помощью плагина   -  person Necrolis    schedule 07.11.2012


Ответы (2)


Я не знаю, как это сделать с помощью OllyDbg, но поскольку вы упомянули другие отладчики Windows, вы можете использовать команду .call в WinDbg.

0:001> .call ABC!DoSomething(1,2)
Thread is set up for call, 'g' will execute.
WARNING: This can have serious side-effects,
including deadlocks and corruption of the debuggee.
0:001> r
eax=7ffde000 ebx=00000001 ecx=00000001 edx=00000003 esi=00000004 edi=00000005
eip=10250132 esp=00a7ffbc ebp=00a7fff4 iopl=0         nv up ei pl zr na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=0038  gs=0000             efl=00000246
ABC!DoSomething:
10250132 55               push    ebp
0:001> dd esp
00a7ffbc  00a7ffc8 00000001 00000002 ccfdebcc

Лучшее объяснение этому можно найти в The Old New Thing.

person jcopenha    schedule 07.11.2012

В своей установке по умолчанию Ollydbg может делать это только для DLL, которые имеют экспорт:

  • Отладка > Вызов экспорта DLL

Для исполняемых файлов и DLL без экспорта вам нужно будет создать плагин, чтобы сделать это.

person Kiran Bandla    schedule 28.01.2013