-
-
[旧帖]
[求助]不知道还要学什么
0.00雪花
-
发表于:
2011-4-15 21:54
1184
-
现在在学汇编。
刚才用OD载入系统自带的计算器
它首先是压栈,然后CALL
我进了CALL
到里面我一条一条的看指令,等出CALL后
我只知道这个CALL 把那几个数据压进压去。又用SUB 和CMP指令
然后把新数据压入新的寄存器中,出CALL
========================================
而我看:【分享】虚拟机完整分析 这个贴
// 将寄存器压入堆栈
push eax
push ebx
push ecx
push edx
push esi
push edi
push ebp
pushfd
// edi -> VMContext
// esi -> 当前字节码地址
// ebp -> 真实堆栈
mov esi, [esp+0x20] // 伪代码开始的地址
mov ebp, esp // ebp保存原堆栈指针
sub esp, 0x200
mov edi, esp // edi指向VMContext
sub esp, 0x40 // esp现在是vm用的堆栈了
mov ebx, esi // 把伪代码base_addr做key
……
=============================================
为什么他就知道这些指令是什么意思呢,就比如他这句:
mov esi, [esp+0x20] // 伪代码开始的地址
他是怎么知道这句就是伪代码开始的地址呢
---------------------------------------------
当我自己读:mov esi, [esp+0x20]
我只知道 程序把[esp+0x20]中的内容放进了 esi 中了.别的就不知道
希望高人指点
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课