如何区分ASM中不同的编译器代码?

逆向工程 ollydbg
2021-06-14 11:32:23

使用 olly 反转可执行文件时,会有编译器代码和用户代码。那么我如何识别编译器代码?假设可执行文件是visual basic,它在前2条指令中有一个jmp和一个调用,然后winmain出现。

1个回答

您只需要确定主要功能。从 main 调用的所有内容都是用户代码。如果要检查函数是否是用户代码的一部分,请从该函数开始递归检查外部参照,并查看它是否在 main 中结束。至于如何识别 main,这取决于编译可执行文件的操作系统,也可能取决于特定的编译器。但是对于 Linux 的 gcc 编译的 ELF 文件,main 是在 start 中调用 __libc_start_main 之前推送的最后一个值。