W32Dasm 的学习日记

来源:互联网 发布:大智慧期货软件 编辑:程序博客网 时间:2024/04/30 07:50

一:一些简单的概念:

Disassembly of file: 反汇编的程序名          code offset 段地址           code size 段大小
imagebase:虚拟地址

小知识点:win32应用程序绝大多数的虚拟基地址都是400000H,而dll、ocx文件及win32汇编程序的虚拟基地址一般都是10000000H。

RVA叫做相对虚拟地址,是内存中相对于文件基地址的偏移量,与文件偏移地址offset并不相同,文件偏移地址Offset指的是文件的内容相对于基地址的偏移。
 

MENU INFORMATION 菜单信息
 DIALOG INFORMATIN 对话框信息
IMPRTED FUNCTIONS 程序的引入表函数(就是程序中调用了那些外部函数)
IMPORT MODULE DETAILS
EXPORTED DUNCTIONS
program entry point:程序的入口地址

*程序的入口点就是程序开始执行的地方*
*程序的入口点和程序代码的起始处并不是一个概念*

:一些代码的意思

(1)@offset 000bc3bah:意思是源代码的偏移地址是bc3bah

(2)Referenced by a (u)nconditional or (c)onditional Jump at Address:
     |:004BC41B(C)
     |
    :004bc425 .....

这段代码的意思是:4bc425处开始的源代码是由004BC41B(C)处有条件地跳转过来的(C)就是有条件跳转 (U)就是无条件跳转

(3)reference to:kernel32.getsystemtimeasfiletime,ord:0000h
     |
    :004bc57c ff15c4734e00 call dword ptr [004e73c4]
这段代码的意思是:4BC57C处的call语句执行的就是kernel32.dll中的getsystemtimeasfiletime这个API函数.

(4)possible ref to menu:menuid_5dc1,item:"close"
|
:004bc582 .........

这段代码的意思是:4BC582处开始的源代码是用来生成执行“menu”的“CLOSE”功能的。

三:常见的汇编指令及对应的机器码(这里我只要学习了几个常用的,当然可以通过工具进行查找)
jne/je(段内跳) 75/74        
jne/je(段间跳) 0F85/0F84
jne/je(段内跳) 75/74        
jnz/jz(段内跳) 0F85/0F84
jmp                        EB              
nop                        90               


原创粉丝点击