Что я делаю не так, чтобы разобрать код

StackOverflow https://stackoverflow.com/questions/4297236

  •  28-09-2019
  •  | 
  •  

Вопрос

Я пробую образец кода, предоставленный в блоге Naven в http://naveensrinivasan.com/2010/06/11/piracy-in-net-code-%e2%80%93-part-3-%e2%80%93-even-Chen-the-Code-is- запутанный /.
Когда он бежит !u ($ip) Команда, он получает хорошую разборку, но когда я пытаюсь запустить то же самое, я, кажется, попал в какой -то неуправляемый код, который нельзя разобрать.

0:000> !u ($ip)   
Unmanaged code  
77555e74 c3              ret  
77555e75 8da42400000000  lea     esp,[esp]  
77555e7c 8d642400        lea     esp,[esp]  
77555e80 8d542408        lea     edx,[esp+8]  
77555e84 cd2e            int     2Eh  
77555e86 c3              ret  
77555e87 90              nop  
77555e88 55              push    ebp  
77555e89 8bec            mov     ebp,esp  
77555e8b 8da42430fdffff  lea     esp,[esp-2D0h]  

Любая идея, что я могу делать не так?

Это было полезно?

Решение

Ваш список совершенно действительный разборка родного кода. Части «INT 2EH» подскажите, что это код, который выполняет системные вызовы:

http://www.codemachine.com/article_syscall.html.

Это означает, что код скорее всего в NTDLL.dll, который является системной библиотекой, задача которой это. Указатель инструкций указывает на «RET». Я догадаюсь, что предыдущая инструкция была «сыззендер», и что на самом деле произошло, так это то, что приложение только что вышла (это сделало это, сделав системный вызов). В качестве приложения выходит, ваш отладчик получает контроль, как будто он будет при попадании в точку останова.

Пожалуйста, посмотрите внимательно посмотрите, почему ваша точка останова не ударяется до выходов приложения.

Другие советы

Попробуйте: .Lines l + s

в окне команд. Также убедитесь, что ваши символы загружены. Вы можете использовать команду lm, чтобы показать загруженные модули.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top