Обфускация и ее преодоление

         

визуализация потока выполнения


Впрочем, в интерактивном режиме (хвала IDA Pro) дизассемблировать код все-таки возможно, но очень уж утомительно. Лучше воспользоваться трассером, генерирующим листинг реально выполняемых машинных команд. Заодно это позволяет избавиться от части мусора и "мертвого" кода, но о трассерах мы еще поговорим, а пока вернемся к дизассемблерам. Рассмотрим фрагмент листинга, сгенерированный IDA Pro:

.adata:0043400E loc_43400E:                     ; CODE XREF: .adata:00434023j

.adata:0043400E                                 ; .adata:loc_43401Aj

.adata:0043400E            mov    eax, 0EBB907EBh

.adata:00434013

.adata:00434013 loc_434013:                     ; CODE XREF: .adata:loc_43401Dj

.adata:00434013            seto   bl            ; ß прыжок в середину команды

.adata:00434016            or     ch, bh

.adata:00434018            jmp    short loc_434025

.adata:00434018

.adata:0043401A loc_43401A:                     ; CODE XREF: .adata:00434009j

.adata:0043401A            repne jmp short near ptr loc_43400E+4

.adata:0043401D

.adata:0043401D loc_43401D:                     ; CODE XREF: .adata:loc_43400Cj

.adata:0043401D            jmp    short near ptr loc_434013+2



Содержание раздела