Сейчас на форуме: Rio, ==DJ==[ZLO], Dart Raiden, Alf (+6 невидимых)

 eXeL@B —› Основной форум —› Вопрос по замене JL на JMP
Посл.ответ Сообщение

Ранг: 3.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 октября 2004 03:11
· Личное сообщение · #1

Есть такой кусок кода:

:00462035 A1C8776B00 mov eax, dword ptr [006B77C8]
:0046203A FF00 inc dword ptr [eax]
:0046203C A1C8776B00 mov eax, dword ptr [006B77C8]
:00462041 8138401F0000 cmp dword ptr [eax], 00001F40
:00462047 7C0A jl 00462053

* Possible StringData Ref from Code Obj ->"Demo Limit!"
|
:00462049 B87C204600 mov eax, 0046207C
:0046204E E8A51B2400 call 006A3BF8

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00462047(C)
|
:00462053 33C0 xor eax, eax
:00462055 5A pop edx
:00462056 59 pop ecx
:00462057 59 pop ecx
:00462058 648910 mov dword ptr fs:[eax], edx
:0046205B 6870204600 push 00462070

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0046206E(U)
|
:00462060 8D45FC lea eax, dword ptr [ebp-04]
:00462063 E8182CFAFF call 00404C80
:00462068 C3 ret


Мне нужно инструкцию JL
:00462047 7C0A jl 00462053
заменить на JMP

Замена на EB приводит к ошибке времени выполнения.
Подскажите, а то крыша уже едет.



Ранг: 210.5 (наставник), 2thx
Активность: 0.140
Статус: Участник

Создано: 04 октября 2004 03:35
· Личное сообщение · #2

Возможно два варианта:
1. Программа проверяет себя на хеш (например crc32), и если есть изменения, то даёт ошибку.

2. Команда jl (jump if less, переход, если меньше) не срабатывает, пока в SI положительное число или 0, тойсть если ты пишешь "jmp" вместа "jl", то в SI точно положительное число или 0, и возможно в продолжении кода после прыжка, программа думает что там отрицательно число, и делает такие операции, которые приводят к ошибке. Попробуй перед прыжком в отладчике засунуть в "SI" "-1", и посмотри что получилось, если получится, тебе придётся этот jl сделать jmp на адрес с нулями, где ты напишешь например:

mov si, -1
push 00462053h
ret



Ранг: 3.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 октября 2004 04:06
· Личное сообщение · #3

А если этот кусок

:00462049 B87C204600 mov eax, 0046207C
:0046204E E8A51B2400 call 006A3BF8

забить нопами ?



Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 04 октября 2004 05:24
· Личное сообщение · #4

defecator
Думается мне, что выше на уровень надо копать, смотри откуда вызывается эта ф-ия

-----
Подписи - ЗЛО! Нужно убирать!



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


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