首页
社区
课程
招聘
[已解决]第四章crackme出现访问0地址
发表于: 2017-5-14 20:09 3465

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

2017-5-14 20:09
3465

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


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 163
活跃值: (677)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2

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

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

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


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