首页
论坛
课程
招聘
[已解决]第四章crackme出现访问0地址
2017-5-14 20:09 1565

[已解决]第四章crackme出现访问0地址

2017-5-14 20:09
1565

P104中mov edx,[ecx+4]//ecx保存argv[0]地址,结合书中的分析,这句好像是取二维数组argv[1]的地址,可是在olly中发现这个[ecx+4]处的值是0,这样在or [edx],bl的时候就出现异常。看了一下源码也没有定义一个二维数组,我想问下[ecx+4]该怎么解释,还有怎么没有定义argv[1]就对它进行操作


[注意] 欢迎加入看雪团队!base上海,招聘安全工程师、逆向工程师多个坑位等你投递!

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 157
活跃值: 活跃值 (91)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
qiantang 活跃值 2017-5-14 21:09
2
0

我前段时间刚看了这本书,我觉得我能回答lz的问题。

lz有两个问题,第一个是argv的来源,这个很简单,argv是c语言main函数的第二个参数,类型就是个二维数组(char*[]),可能lz没有注意到。

第二个问题是argv[1]的值为空,这是因为这个CrackMe.exe的运行是需要带命令行参数的,在p102页有说明,我也可以在这里说一下,比如在命令行中输入(或者在od中带参数调试):CrackMe.exe hello,则argv[1]指向为"hello"的字符串。


雪    币: 37
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
slowloriss 活跃值 2017-5-15 06:15
3
0
你們看的什麼書  給我來一本
雪    币: 44
活跃值: 活跃值 (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MOVESP 活跃值 2017-5-15 07:11
4
0
qiantang 我前段时间刚看了这本书,我觉得我能回答lz的问题。lz有两个问题,第一个是argv的来源,这个很简单,argv是c语言main函数的第二个参数,类型就是个二维数组(char*[]),可能lz没有注意到 ...
谢谢你的解答,你这样说我就明白了
游客
登录 | 注册 方可回帖
返回