Сейчас на форуме: YDS, _MBK_, user99, ManHunter (+8 невидимых)

 eXeL@B —› Основной форум —› Ercom 2000 Repeat
Посл.ответ Сообщение

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

Создано: 01 ноября 2005 19:39
· Личное сообщение · #1

Тему закрыли пришлось заново создавать.
проблема такая: пытаюсь пропатчить в памяти пару байт, прога слетает с ошибкой с0000005

вставляю такой код:
00404086 |. E8 D5768000 CALL Ercom200.00C0B760 //в свободное место
0040408B |. 90 NOP

а там

00C0B760 $ 8138 32722E00 CMP DWORD PTR DS:[EAX],2E7232 //сравниваем
00C0B766 . 74 0F JE SHORT Ercom200.00C0B777 //если что прыгаем
00C0B768 . 8BF8 MOV EDI,EAX //восстанавливаем
00C0B76A . 85F6 TEST ESI,ESI //затертые
00C0B76C ^0F84 23897FFF JE Ercom200.00404095 //байты
00C0B772 C3 RETN
00C0B773 90 NOP
00C0B774 90 NOP
00C0B775 90 NOP
00C0B776 90 NOP
00C0B777 > C700 3274792E MOV DWORD PTR DS:[EAX],2E797432 //подменим значение на правильное
00C0B77D . 8BF8 MOV EDI,EAX //восстановим
00C0B77F . 85F6 TEST ESI,ESI //затертые
00C0B781 .^0F84 0E897FFF JE Ercom200.00404095 //байты
00C0B787 . C3 RETN


не пойму почему ошибку выкидывает.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 01 ноября 2005 20:04
· Личное сообщение · #2

Дык бери отладчик и смотри почему ошибку выкидывает.



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

Создано: 01 ноября 2005 20:09
· Личное сообщение · #3

Ara
пытается читать память вне доступного пространства.
типа
mov ecx,[eax] где в eax недопустимый адрес памяти

пытался сам понять почему так получается, но мозгов не хватает.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 01 ноября 2005 21:09
· Личное сообщение · #4

Я не то имел ввиду. Если ошибка в твоем коде вылетает, значит код написан криво. Если ошибка почти сразу после твоего кода - код написан криво. Вот и ищи, что ты некорректно затер, скорее всего регистры нужные. Чтоб не париться сильно, вставь PUSHAD\POPAD в код свой.



Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 01 ноября 2005 22:44 · Поправил: Cigan
· Личное сообщение · #5

А ты установи атрибуты секции в которую твой патч пишет на C0000040 и все будет ок



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

Создано: 02 ноября 2005 06:05
· Личное сообщение · #6

Ara похоже ИС специально вызывается, после сообщения системы выскакивает сообщение проги
"RUN Time Error".
Ara пишет:
некорректно затер
так вроде ничего не затирал, кроме 4-х байт в памяти, которые мне и нужно поменять.
Ara пишет:
вставь PUSHAD\POPAD
Домой приду попробую
Ara пишет:
Если ошибка в твоем коде вылетает
Где-то совсем далеко (там какой-то вечный цикл)
Cigan атрибуты секций такие и есть.




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 02 ноября 2005 11:37
· Личное сообщение · #7

Cigan пишет:
установи атрибуты секции в которую твой патч пишет на C0000040


А я бы зделал E0000020 или E0000060.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 02 ноября 2005 14:24
· Личное сообщение · #8

Имхо PUSHAD\POPAD решит проблему.



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

Создано: 02 ноября 2005 16:52
· Личное сообщение · #9

Ara пишет:
PUSHAD\POPAD решит проблему.

не решило

00C0B760 60 PUSHAD
00C0B761 8138 32722E00 CMP DWORD PTR DS:[EAX],2E7232
00C0B767 74 0E JE SHORT Ercom200.00C0B776
00C0B769 8BF8 MOV EDI,EAX
00C0B76B 85F6 TEST ESI,ESI
00C0B76D ^0F84 22897FFF JE Ercom200.00404095
00C0B773 61 POPAD
00C0B774 C3 RETN
00C0B775 90 NOP
00C0B776 C700 3274792E MOV DWORD PTR DS:[EAX],2E797432
00C0B77C 8BF8 MOV EDI,EAX
00C0B77E 85F6 TEST ESI,ESI
00C0B780 ^0F84 0F897FFF JE Ercom200.00404095
00C0B786 61 POPAD
00C0B787 C3 RETN

та-же ошибкаNIKOLA пишет:
я бы зделал E0000020 или E0000060.


то-же не помогает



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

Создано: 03 ноября 2005 05:46
· Личное сообщение · #10

ау-у-у-у есть ещё какие мысли? ошибка появляется даже если просто jmp C0B760, а там просто восстанавливаю
затёртые байты и jmp обратно.



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

Создано: 03 ноября 2005 08:15
· Личное сообщение · #11

Всё забил. Нашел в нете лоадер.
Вопросов больше не имею.


 eXeL@B —› Основной форум —› Ercom 2000 Repeat
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати