對抗反彙編,在很大程度上就是運用花指令技術,使得IDA的強大F5功能失效,在只能靜態分析時讓程式碼顯得亂七八糟,沒有頭緒,將知識點總結如下

用IDA python對指令進行NOP替換

import idaapi
idaapi.CompileLine('static n_key() {RunPythonStatement("nopIt()");}')

AddHotkey("Alt-N","n-key")
def notIt():
	start = ScreenEA()
	end = NextHead(start)
	for ea in range(start,end):
		PatchByte(ea,0x90)
	Jump(end)
	Refresh()

在C中刻意使用函式指標,可以大大降低反彙編器自動推匯出的資訊量

call = jmp + push

retn = jmp + pop

在patch程式,恢復堆疊平衡的時候非常重要