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

         

временное сохранение


Команда MOV EAX,EBB907EBh на первый взгляд выглядит "значимой", но на самом деле это "мусор", нейтрализуемый командами push eax/pop eax, и по сути весь этот конгломерат имеет нулевой эффект, то есть является совершенно ничего не делающим кодом. Поэтому, делать вывод о "значимости" команд нужно с очень большой осторожностью и до тех пор, пока не будет доказано, что данный кусок кода действительно имеет какой-то эффект, он должен считаться "мусором" по умолчанию.

Некоторые обускаторы любят внедрять подложные расшифровщики, расшифровывающие и тут же зашифровывающие произвольные фрагменты памяти (см. листинг 7).

00434105   83ED 06          SUB EBP,6

00434108   B8 3B010000            MOV EAX,13B

0043410D   03C5            ADD EAX,EBP

0043410F   33DB            XOR EBX,EBX

00434111   81C3 01010101   ADD EBX,1010101

00434117   3118            XOR DWORD PTR DS:[EAX],EBX ; <- расшифровываем

00434119   8138 78540000   CMP DWORD PTR DS:[EAX],5478

0043411F   74 04           JE SHORT app_test.00434125

00434121   3118            XOR DWORD PTR DS:[EAX],EBX ; <- зашифровываем

00434123  ^EB EC           JMP SHORT app_test.00434111



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