COM盾天生阻止IDA僞代碼分析
如下面三個截圖,左圖為C語言源碼,中圖為IDA根據符号表PDB反彙編的僞代碼,右圖是IDA無PDB反彙編的僞代碼。
可以看出,源代碼調用了兩個函數CRC32Val()和AddSystemError()。
有PDB的僞代碼為HotCom32.Callback.Int()和HotCom16.Callback.Int(),IDA确實非常聰明,因為Int()确實是一種通用調用方法。因為COM盾的函數指針數組是随機散列的,故實在無法反彙編出源碼,即使給源碼也有點暈。
無PDB的僞代碼為函數指針數組funcs_18000C836()和qword_180027300()。
故有結論:
COM盾可以有效地阻止IDA的反彙編和僞代碼分析。即使給出對應的PDB檔案也無法靜态地找到函數名即函數的入口位址。