Сейчас на форуме: Magister Yoda, johnniewalker, Kybyx, vsv1, r0lka, -Sanchez- (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› Странная фигня с MessageBox() при трассировке
Посл.ответ Сообщение


Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 28 октября 2010 22:45
· Личное сообщение · #1

Есть фасм MessageBox()

Code:
  1. 00401000   push    0
  2. 00401002   call    HELLO.0040100A
  3. 00401007   dec     edi
  4. 00401008   dec     ebx
  5. 00401009   db      00
  6. 0040100A   call    HELLO.0040101B
  7. 0040100F   dec     eax
  8. 00401010   ins     byte ptr es:[edi], dx            ; I/O command
  9. 00401012   outs    dx, dword ptr es:[edi]           ; I/O command
  10. 00401013   and     byte ptr ds:[edi+6F], dh
  11. 00401016   jb      short HELLO.00401084
  12. 00401018   and     dword ptr fs:[eax], eax
  13. 0040101B   push    0                                           ; |hOwner = NULL
  14. 0040101D   call    dword ptr ds:[<&USER32.MessageBo>; MessageBoxA
  15. 00401023   retn


Если кол по адресу 00401002 выполнить через трасировку F8 То MessageBox() выполнится с текстом
MK
Hello World!

Если заходить - F7 или F9 то все ОК,

OK
Hello World!

Загадка, не понятно почему так, перезаписывается флагом трасировки текст заголовка?

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 28 октября 2010 22:48
· Личное сообщение · #2

Байтом 0xCC перезаписывается.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 28 октября 2010 22:51 · Поправил: Coderess
· Личное сообщение · #3

00401002 OK

Смотрю в дамп вроде не перезаписывается


0040100F dec eax ; H (ellow начинается)
00401010 ins byte ptr es:[edi], dx ; I/O command
00401012 outs dx, dword ptr es:[edi] ; I/O command
00401013 and byte ptr ds:[edi+6F], dh
00401016 jb short HELLO.00401084
00401018 and dword ptr fs:[eax], eax

Ставлю бряк не срабатывает

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 28 октября 2010 22:57 · Поправил: daFix
· Личное сообщение · #4

int пишет:
Байтом 0xCC перезаписывается.

+1
StepOut трассировка осуществляется путём записи оппкода 0xCC после колла. Вообще лучше использовать трассировку через железные бряки. Много протекторов проверяют наличие байта 0xCC

ADDED:
Олька отображает буфер, без учёта int3 бряков.
Напиши следующий код:
Code:
  1. 0040101D   MOV EAX,DWORD PTR SS:[ESP+8]
  2. 00401021   MOV AL,BYTE PTR DS:[EAX]

И посмотри что будет лежать в регистре al после исполнения

PS:
Приятно что старики потихоньку подтягиваются на форум!

-----
Research For Food





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 28 октября 2010 23:01
· Личное сообщение · #5

Coderess пишет:
Смотрю в дамп вроде не перезаписывается

А как ты увидишь? Оля прячет бряк при показе дампа. Сдампь дампером процесса и посмотри.

-----
Yann Tiersen best and do not fuck





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 28 октября 2010 23:20
· Личное сообщение · #6

Всем спасибо
daFix
Вариант проверить через вставку кода обнаружил 0xCC

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




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

Создано: 29 октября 2010 05:51 · Поправил: Kiev78
· Личное сообщение · #7

---



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

Создано: 29 октября 2010 17:20 · Поправил: Kiev78
· Личное сообщение · #8

---




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 29 октября 2010 17:22 · Поправил: PE_Kill
· Личное сообщение · #9

Clerk не все такие мегагуру как ты. Было время когда ты не знал что такое отладчик в принципе, а потом обучался. Вот человек задал вопрос на определенном этапе своего обучения, который ты давно прошел, это значит можно глумиться над ним? Иди на васм там гораздо больше вопросов подобного типа.

Kiev78 может потому что тс не спрашивал как от этого избавиться, а спрашивал в чем причина?

-----
Yann Tiersen best and do not fuck





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 29 октября 2010 20:08
· Личное сообщение · #10

Kiev78 пишет:
Развели целую дискуссию вместо того чтобы просто сказать: "Переключись на хардварные бряки и не парься".


daFix пишет:
Вообще лучше использовать трассировку через железные бряки


No Comments

-----
Research For Food




Ранг: 156.1 (ветеран), 5thx
Активность: 0.020
Статус: Участник
Капрал

Создано: 01 ноября 2010 08:29
· Личное сообщение · #11

А таком случае будет доступно всего 3 хардвар бряка ?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 01 ноября 2010 09:52
· Личное сообщение · #12

Если бряки уже заняты, олька будет софтварные тыкать. Либо 1 займёт под one-shot, как не сложно догадаться.


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


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