反编译后的汇编程序问题
请问下面的代码是什么意思,详细点,因为我刚学汇编,对汇编不太熟悉.
* Prossible StringData Ref from Code Obj ->"98441222"
move edx, 00488828
call 00404444
lea eax, dword ptr [ebp-24]
尤其是第三条,根本不懂。 call 00404444是调用子程序吗?子程序在哪里? edx, eax, dword ptr 是什么东西?
[解决办法]
晕!都是最基本的。你学的是8086汇编吧。
这是32位汇编程序。8086是16位的。
32位CPU把所有寄存器都该成了32位,64位CPU把寄存器该成了64位。CPU的地址也分16位、32位和64位,根据CPU的工作模式而定。
eax是ax的32位扩展,rax是ax的64位扩展,寄存器的低16位还用ax表示。
edx是dx的32位扩展,rdx是dx的64位扩展,寄存器的低16位还用dx表示。
还有bx,cx,si,di,bp,sp,前面加个e是32位,加个r是64位。
00488828、00404444都是32位立即数。
call后面跟的立即数肯定是子程序地址。
dword表示32位数,ptr表示指针。
[解决办法]
先学些基本的汇编知识,然后学些调试的原理。
[解决办法]
学逆向工程先得把基础打牢
建议参看http://bbs.pediy.com/showthread.php?t=31840,总结德非常精辟
[解决办法]
先把基础好好学一下 去看雪论坛看一下 资料很多 工具也很多