Сейчас на форуме: vsv1, _MBK_ (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Помогите написать скрипт для olly
Посл.ответ Сообщение

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

Создано: 16 июля 2007 06:03
· Личное сообщение · #1

Я еще никогда скриптов не писал.
Нужно такое:
Есть вызов функции вида
call dword ptr [xxx]

Есть функция например "Func1@@xyz".
Нужно чтобы скрипт нашел где лежит эта функция и поместил в call dword ptr [xxx] вместо Xxx соответствующий адрес.
Это наверно легко? Как это сделать?



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 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
Вроде так



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

Создано: 16 июля 2007 23:44
· Личное сообщение · #3

Ошибка в строчке 6
find CodeBase, #XXXXXXXXXX............# // где ХХХХХХХХХ........ - сигнатура начала функции Func1@@xyz

Не очень понял что тут писать.
Например функция должна вызываться так:
0048A37B . FF15 98F34800 CALL DWORD PTR [<&MSVCRT.__setusermather>; MSVCRT.__setusermatherr

Какая тут сигнатура?



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

Создано: 17 июля 2007 00:40
· Личное сообщение · #4

Какая тут сигнатура?
В данном случае такая : #FF 15 ?? ?? 48 00#



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 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, импортируемая или как. Если нет, то где она расположена, в секции кода?



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

Создано: 17 июля 2007 12:35
· Личное сообщение · #6

Есть импортируемая функция MSVCRT.__setusermatherr.
Есть место в коде call dword ptr [00000000]
Нужно чтобы там вместо [00000000] появился указатель где лежит MSVCRT.__setusermatherr.
Вроде так.



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 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



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

Создано: 21 июля 2007 15:11
· Личное сообщение · #8

Вот с этой строчкой проблема:

gpa "__setusermatherr", "MSVCRT.dll" //Получили адрес __setusermatherr в системе

Всегда 0 возвращает.

Как вот такую в этой строчке правильно прописать, перепробовал штук 20 вариантов, нифига,0 возвращает

Type=Import
Name=user.?CheckForNumbers@@YAXXZ



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 23 июля 2007 13:00
· Личное сообщение · #9

sliderZ
Какая версия ODbgScript?



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

Создано: 23 июля 2007 16:50
· Личное сообщение · #10

версия ODbgScript v1.48 by Epsilon3



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

Создано: 23 июля 2007 17:58
· Личное сообщение · #11

sliderZ сразу качай и ставь ODbgScript v1.64 v3

в 1.48 у меня любили поглючить и gpa, и eoe, а в промежуточных 1.61-1.63,- SUB



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

Создано: 24 июля 2007 09:32
· Личное сообщение · #12

Скачал последнюю версию, кое что начало работать. Но то что мне нужно все равно не работает.

Почему-то складывается ощущение, что gpa находит только функции системных dll'ок, а функции собственных dll'ok проги не находит?



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

Создано: 24 июля 2007 10:04 · Поправил: Small_S
· Личное сообщение · #13

Я могу сильно ошибаться ибо давно дело было, но вроде когда то справку переводил и gpa, вроде была для определения только в системных библ. Может в последнее время её научили и просто библиотеки сканить, да пока криво. Если это баг на какой то системе(у crc1 я так понял работает) можно попытаться написать автору или даже просто найти топик на краклабе по ODbgScript и тиснуть сообщение туда(у меня такое впечатление что автор его смотрит, так как по ошибке SUB за три- четыре дня поправил после моего поста).

Вот топ нашел: http://exelab.ru/f/action=vthread&forum=3&topic=8693&page= 1



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 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


1ffd_24.07.2007_CRACKLAB.rU.tgz - gpa.rar


 eXeL@B —› Вопросы новичков —› Помогите написать скрипт для olly
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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