Сейчас на форуме: zds, tyns777, JustLife, 2nd, morgot, Rio, CDK123 (+4 невидимых)

 eXeL@B —› Программирование —› Исключение при записи в секцию кода
Посл.ответ Сообщение


Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 25 января 2009 16:17 · Поправил: Isaev
· Личное сообщение · #1

Прога на Delphi 5... OEP
Code:
  1. 00410304 >/   55            PUSH EBP
  2. 00410305  |.  8BEC          MOV EBP,ESP
  3. 00410307  |.  83C4 F4       ADD ESP,-0C
  4. 0041030A  |.  B8 34024100   MOV EAX,00410234
  5. 0041030F  |.  E8 342BFFFF   CALL 00402E48
  6. 00410314  |.  A1 0C164100   MOV EAX,DWORD PTR DS:[41160C]
  7. 00410319  |.  33D2          XOR EDX,EDX
  8. 0041031B  |.  E8 DCECFFFF   CALL 0040EFFC
  9. 00410320  |.  A1 0C164100   MOV EAX,DWORD PTR DS:[41160C]
  10. 00410325  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  11. 00410327  |.  8B50 18       MOV EDX,DWORD PTR DS:[EAX+18]
  12. 0041032A  |.  A1 FC154100   MOV EAX,DWORD PTR DS:[4115FC]
  13. 0041032F  |.  E8 70BCFFFF   CALL 0040BFA4
  14. 00410334  |.  A1 0C164100   MOV EAX,DWORD PTR DS:[41160C]
  15. 00410339  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  16. 0041033B  |.  83C0 18       ADD EAX,18
  17. 0041033E  |.  E8 0D38FFFF   CALL 00403B50
  18. 00410343  |.  E8 6017FFFF   CALL 00401AA8

тут конец, дальше нули до конца секции кода...
Вставляю сюда свой код
Code:
  1. 00410348  |.  03           DB 03           // типа счётчик


Code:
  1. 00410349      FE0D 48034100 DEC BYTE PTR DS:[410348]    <-- тут вылетает
  2. 0041034F      803D 48034100>CMP BYTE PTR DS:[410348],0
  3. 00410356      74 05         JE SHORT 0041035D
  4. 00410358      E8 AF6EFFFF   CALL 0040720C
  5. 0041035D      C3            RETN


Вызывается исключение при записи в память.
Почему?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 25 января 2009 16:24
· Личное сообщение · #2

На дельфях по умолчанию на секции кода нет атрибута Writeable, проверь

-----
SaNX





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

Создано: 25 января 2009 16:26
· Личное сообщение · #3

раз пять на форуме поднимался этот вопрос




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 25 января 2009 16:36
· Личное сообщение · #4

SaNX пишет:
На дельфях по умолчанию на секции кода нет атрибута Writeable

нет
Ara пишет:
раз пять на форуме поднимался этот вопрос

может, но не встречал, сорри...

тогда другой вопрос:
там не на одной секции нет прав на запись
как организовать счётчик без записи в память
[или может изменить права? хотя как-то это не правильно... ]

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 25 января 2009 16:43
· Личное сообщение · #5

Isaev
стоят права на запись у всех секций, кроме CODE, .rdata, .reloc, .rsrc

Если тебе надо без изменения прав доступа - выноси свой код в секцию с правами на запись и выполнение




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 25 января 2009 17:40
· Личное сообщение · #6

всё разобрался, спасибо

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh



 eXeL@B —› Программирование —› Исключение при записи в секцию кода
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати