个人经验,开始阅读汇编代码时结合源代码会更好理解些,毕竟C语言代码的可读性更强。
理解一些简单的汇编代码段后,阅读更大量的汇编代码就会得心应手些。
另外很多人都有疑问,如果有源代码的话,直接走读源代码不是更好吗,为什么还需要走读汇编代码?
试想一下,一个千万行代码级别的产品,走读代码,该从哪开始?
何况源代码中有很多宏定义,也有可能很多代码都不会被编译,从源代码看到的问题点可能实际根本不会存在安全风险,而反汇编则可以避免这种问题,我们可以根据进程信息去提取出有效的文件进行反编译。
反编译的结果都是优化以后的代码,可以简单清晰的看出程序的数据流图,只不过反汇编要求安全测试人员对汇编代码要非常熟悉,万事熟能生巧,汇编代码多读多写,自然慢慢就会熟悉了。