首页
社区
课程
招聘
未解决 [求助]汇编代码求解
发表于: 2023-7-9 23:03 4211

未解决 [求助]汇编代码求解

2023-7-9 23:03
4211
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 4744
活跃值: (2666)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
任何程序的调用,返回地址都要进栈。
2023-7-10 08:48
1
雪    币: 248
活跃值: (1066)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

你看看stdcall规则。堆栈前面要保存返回地址。
32bit系统快淘汰了,你们老师还让学这些?

最后于 2023-7-10 08:52 被sixL编辑 ,原因:
2023-7-10 08:51
1
雪    币: 2118
活跃值: (30611)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
可以找本逆向书学习一下
2023-7-10 09:31
1
雪    币: 515
活跃值: (3174)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
5
你为啥不调试一下看看栈内容呢?
栈内按照你画的顺序,从下到上应该是argv argc return_address ebp local_variant
call指令做了什么事情可以去了解一下,它会先把call xxx指令的下一条指令的地址作为xxx函数执行之后的返回地址入栈,所以ebp+4拿到的应该就是这个返回地址,+8才是第一个参数
2023-7-10 10:32
1
雪    币: 8617
活跃值: (5090)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
基础要打好
2023-7-10 11:04
0
雪    币: 24521
活跃值: (4372)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你画的堆栈图都是错的,首先,地址应该对应格子不是线,第二,栈中缺少了原ebp和返回地址。第一句push ebp执行前,返回地址已经压入栈顶,push ebp执行后,又将原ebp压入栈顶,这两者在你的图中都未有体现。你得理解每一条指令对堆栈的影响,才能准确理解堆栈变化的根本原因,动手实践有助于你将抽象的理论形象化
2023-7-10 11:12
1
游客
登录 | 注册 方可回帖
返回
//