请版主发一下源码
本帖最后由 wow7jiao 于 2018-6-24 11:06 编辑下面是翻遍,我尝试逐条翻译,有错误请前辈指点
int main(void)
{
010BF840push ebp//备份堆栈指针入堆栈
010BF841mov ebp,esp//堆栈指针复制给备份堆栈指针
010BF843sub esp,0D8h//为函数申请一段空间
010BF849push ebx//
010BF84Apush esi//
010BF84Bpush edi//寄存器压栈,保留现场
010BF84Clea edi,//这是减负数吗,然后把值给edi
010BF852mov ecx,36h//计数器54
010BF857mov eax,0CCCCCCCCh//这里是int3吗?不用设置cs ip吗?
010BF85Crep stos dword ptr es://rep指令的目的是重复其上面的指令.ECX的值是重复的次数.。。STOS指令的作用是将eax中的值(eax=0CCCCCCCCh,这里拷贝54次eax有什么用?)拷贝到ES:EDI指向的地址.edi会同步减小。
int a = 100;
010BF85Emov dword ptr ,64h//这里是把100放进堆栈
int *p = &a;
010BF865lea eax,//把备份指针的偏移值给eax
010BF868mov dword ptr ,eax//把偏移值在放进向上20字节堆栈空间?
printf("%d\n", *p);
010BF86Bmov eax,dword ptr
010BF86Emov ecx,dword ptr
010BF870push ecx
010BF871push 1153E50h
010BF876call 010BBD9B//段间转移,pushcs,puship,去010BBD9B地址。
010BF87Badd esp,8
return 0;
010BF87Exor eax,eax//异或,eax清0
} wow7jiao 发表于 2018-6-24 14:59
请人造人老师发布一下,您发的反汇编对应的源码是什么?
#include <stdio.h>
int main(void)
{
int a = 100;
int *p = &a;
printf("%d\n", *p);
return 0;
}
这个翻译有好多问题
先把反汇编发完整
从main函数开始,到main函数返回(ret 指令) 人造人 发表于 2018-6-24 13:47
这个翻译有好多问题
先把反汇编发完整
从main函数开始,到main函数返回(ret 指令)
版主,这就是你发的啊
http://bbs.fishc.com/thread-117286-1-1.html
我没看懂,所以尝试翻译下{:5_97:} wow7jiao 发表于 2018-6-24 14:08
版主,这就是你发的啊
http://bbs.fishc.com/thread-117286-1-1.html
我不是版主^_^
人造人 发表于 2018-6-24 14:11
我不是版主^_^
http://bbs.fishc.com/thread-83878-1-1.html
我记得你通过了 wow7jiao 发表于 2018-6-24 14:40
http://bbs.fishc.com/thread-83878-1-1.html
我记得你通过了
现在不是了
^_^
人造人 发表于 2018-6-24 14:41
现在不是了
^_^
请人造人老师发布一下,您发的反汇编对应的源码是什么?
页:
[1]