![]() |
eXeL@B —› Вопросы новичков —› Помогите написать скрипт для olly |
Посл.ответ | Сообщение |
|
Создано: 16 июля 2007 06:03 · Личное сообщение · #1 |
|
Создано: 16 июля 2007 10:52 · Личное сообщение · #2 var CodeBase var addr mov addr, YYYYYYYY // адрес вызова функции вида call dword ptr [xxx] GMI eip, CODEBASE mov CodeBase, $RESULT // Получили адрес начала секции code find CodeBase, #XXXXXXXXXX............# // где ХХХХХХХХХ........ - сигнатура начала функции Func1@@xyz cmp $RESULT, 0 je cancel_Script add addr, 2 mov addr, $RESULT ret cancel_Script: ret Вроде так ![]() |
|
Создано: 16 июля 2007 23:44 · Личное сообщение · #3 Ошибка в строчке 6 find CodeBase, #XXXXXXXXXX............# // где ХХХХХХХХХ........ - сигнатура начала функции Func1@@xyz Не очень понял что тут писать. Например функция должна вызываться так: 0048A37B . FF15 98F34800 CALL DWORD PTR [<&MSVCRT.__setusermather>; MSVCRT.__setusermatherr Какая тут сигнатура? ![]() |
|
Создано: 17 июля 2007 00:40 · Личное сообщение · #4 |
|
Создано: 17 июля 2007 07:46 · Личное сообщение · #5 sliderZ Объясни толком че те нада sliderZ пишет: Например функция должна вызываться так: 0048A37B . FF15 98F34800 CALL DWORD PTR [<&MSVCRT.__setusermather>; MSVCRT.__setusermatherr зто функция "вида call dword ptr [xxx]" ? Вместо __setusermatherr ты хочешь вызвать "Func1@@xyz" ? Че за функция Func1@@xyz, импортируемая или как. Если нет, то где она расположена, в секции кода? ![]() |
|
Создано: 17 июля 2007 12:35 · Личное сообщение · #6 |
|
Создано: 17 июля 2007 15:55 · Личное сообщение · #7 Если известно имя функции и она импортируется тады так var addr var imp mov addr, YYYYYYYY // адрес вызова функции вида call dword ptr [xxx] mov imp, XXXXXXXX // адрес начала таблицы импорта gpa "__setusermatherr", "MSVCRT.dll" //Получили адрес __setusermatherr в системе cmp $RESULT, 0 je cancel_Script find imp, $RESULT // Ищем указатель на ф-ию __setusermatherr в таблице импорта cmp $RESULT, 0 je cancel_Script add addr, 2 mov addr, $RESULT ret cancel_Script: ret ![]() |
|
Создано: 21 июля 2007 15:11 · Личное сообщение · #8 |
|
Создано: 23 июля 2007 13:00 · Личное сообщение · #9 |
|
Создано: 23 июля 2007 16:50 · Личное сообщение · #10 |
|
Создано: 23 июля 2007 17:58 · Личное сообщение · #11 |
|
Создано: 24 июля 2007 09:32 · Личное сообщение · #12 |
|
Создано: 24 июля 2007 10:04 · Поправил: Small_S · Личное сообщение · #13 Я могу сильно ошибаться ибо давно дело было, но вроде когда то справку переводил и gpa, вроде была для определения только в системных библ. Может в последнее время её научили и просто библиотеки сканить, да пока криво. Если это баг на какой то системе(у crc1 я так понял работает) можно попытаться написать автору или даже просто найти топик на краклабе по ODbgScript и тиснуть сообщение туда(у меня такое впечатление что автор его смотрит, так как по ошибке SUB за три- четыре дня поправил после моего поста). Вот топ нашел: http://exelab.ru/f/action=vthread&forum=3&topic=8693&page= 1 ![]() |
|
Создано: 25 июля 2007 08:08 · Личное сообщение · #14 crc1 пишет: add addr, 2 mov addr, $RESULT Пардон тут ошибка. надо так add addr, 2 mov [addr], $RESULT sliderZ пишет: Почему-то складывается ощущение, что gpa находит только функции системных dll'ок, а функции собственных dll'ok проги не находит? У меня все находит Версия ODbgScript 1.52 ![]() ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Помогите написать скрипт для olly |