能力值:
(RANK:260 )
|
-
-
2 楼
最近egogg正在写关于Intel的反汇编引擎的专题。
可以看看。
关于上面的问题,因为0x401c6f这个地址被OD分析时,自动加上了标签,所以反汇编就用标签来显示了。你可以配置OD让它只显示地址的,不过除非特殊需要,我们人容易分析需要标签而不是地址。
同样,如果某地址没有被OD自动分析出来,而经过人工分析知道了这个函数的功能,那么可以手动加上标签,比如原来的指令是
00403F7D E8 BAECFFFF CALL unpacked.00402C3C
你到地址到00402c3c处分析,认为这个函数是计算字串长度的,你按“冒号”键,给它加个strlen的标签,再回到原来的地方,现在它变成这样了:
00403F7D E8 BAECFFFF CALL <unpacked.strlen>
这是分析大段代码时的一种基本方法,应该熟练掌握。
对于楼主提供的例子,只不过标签jmp.&MSVCRT._except_handler3是OD自己分析出来的,可能从IAT中,或其它方式分析得到的,而我举的例子strlen是自己添加了。
另外,分析大块代码时还有一种常用的方法,就是导入模块的MAP文件,它会自己加上很多标签,非常方便。如果是用OD调试自己写程序,MAP文件可以用编译器生成。如果是逆向分析,MAP文件可以使用IDA来生成,因为IDA有很多SIG文件,能够识别相当多的库函数,甚至常用算法的函数,这样再导入到OD中,往往能够事半功倍。
不知道你想了解的是什么细节,我上面说的可有帮助。
如果把问题再叙述得详细些,准确些,就更好了。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
非常感谢 回答的很详细
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
明白了。label 理解为函数名字。就象IDA里也有修改 Function comment地方
|
|
|