首页
社区
课程
招聘
[旧帖] [己解决]一个很菜的问题? 0.00雪花
发表于: 2008-1-22 00:25 2819

[旧帖] [己解决]一个很菜的问题? 0.00雪花

2008-1-22 00:25
2819
004DE6F7    50                          push eax                        ;
004DE6F8    8D55 E8                 lea edx,dword ptr ss:[ebp-18]   ;
004DE6FB    8B45 FC                 mov eax,dword ptr ss:[ebp-4]
004DE6FE    8B80 08030000     mov eax,dword ptr ds:[eax+308]

输入密码123456789时在寄存器里显示00D5ACD8EAX 00D5ACD8 ASCII "123456789"

在命令里面D 00D5ACD8显示00D5ACD8  31 32 33 34 35 36 37 38           12345678
------------------------00D5ACE0  39 00 00 00 14 00 00 80           9.....€

来到mov eax,dword ptr ss:[ebp-4]时堆栈显示

堆栈 ss:[0012FB68]=00D526F0
eax=00D5ACD8, (ASCII "123456789")

eax里放的是31 32 33 34 还是31 32 33 34 35 36 37 38 39我以为dword ptr是双字4个字节是该是31 32 33 34

在004DE6F7    50    push eax  时,是31 32 33 34 35 36 37 38 39还是31 32 33 34

也许你们会认为这个问题很蠢,只是刚学计算机语言

渴望指教!谢谢!!

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
eax=00D5ACD8, (ASCII "123456789")这里已经说得明白了,eax==00D5ACD8,所以eax放着的是 D8 AC 5A 00这四个字节,而不是31 32 33 34....,而这里的提示(ASCII "123456789")是OD告诉你,00D5ACD8是一个指针,他指向字符串“123456789”。一般来说,传给函数的参数内容长度超过4个四字的内容都是以指针方式传给函数参数的,而指针存放的内容要看是什么类型数据才能知道存的东西长度是多少,并不限于四个字节。

PS:楼主还是先学习一下汇编吧,这是属于很基本的问题,如果你不懂汇编,你还有很多是难以理解的。
2008-1-22 08:13
0
游客
登录 | 注册 方可回帖
返回
//