首页
社区
课程
招聘
Intel汇编程序设计学习中遇见的问题请教大侠们
发表于: 2010-8-6 16:57 3647

Intel汇编程序设计学习中遇见的问题请教大侠们

2010-8-6 16:57
3647
main PROC
        mov eax,0EAEAEAEAh
        mov ebx,0EBEBEBEBh
        INVOKE aProc,1111h,2222h
        exit
main ENDP
        aProc PROC USES eax,ebx,
        X:DOWRD,Y:DWORD
        LOCAL a:DOWRD,b:DWORD
        PARAMS=2
        LOCALS=2
        SAVED_REGS=2
        mov  a,0AAAAh
        mov  b,0BBBBh
        INVOKE WriteStatckFrame,PARAMS,LOCALS,SAVED_REGS
问题是:为啥我的分析的堆栈结果和书上的不一样呢?
小弟新手刚开始学习汇编目前看的是《Intel 汇编语言程序设计》
我准备做逆向工程学习目前的思路是先学《Intel 汇编语言程序设计》然后是学习《win32汇编程序设计》然后是《加密与解密第三版》,不知道过来人能否提醒下这个思路是否正确。谢谢!

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 171
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
对于书上的方式我的问题是:1.在调用函数之前不是要先保护好返回地址么?2.eax ebx 在进入aProc之前已经赋值,而且调用的时候使用了USES EAX EBX 这是否应该先把参数保存呢?
先谢谢大侠们的赐教了
2010-8-6 17:02
0
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
书上是正确的。首先你没理解invoke和uses隐含的操作,其次你在顺序中有误解。

1 先压参数(2222,1111),再压返回地址。这个是由invoke实现的。至此共压入3个
2 接下来是例行惯例push ebp与mov ebp,esp。至此共压入4个
3 接下来是给局部变量在栈上分配空间,即aaaa和bbbb的地址空间。至此共6个
4 接下来保存eax和ebx(ebebebeb和eaeaeaea)。这个是由USES实现的。至此共8个
2010-8-6 17:53
0
雪    币: 56
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习学习,好好努力
2010-8-9 22:53
0
雪    币: 459
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
lz不是现在在看IBM汇编么?为虾米我刚开始学的时候,子程序调用没遇见过invoke等伪指令呀。参数传递、堆栈平衡都是手动完成的。
2010-8-15 08:21
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
向大家学习,支持看雪
2010-8-15 13:15
0
游客
登录 | 注册 方可回帖
返回
//