首页
社区
课程
招聘
[旧帖] [求助]请教CRACKME2007里一个例子的问题 0.00雪花
发表于: 2007-10-20 13:39 4053

[旧帖] [求助]请教CRACKME2007里一个例子的问题 0.00雪花

2007-10-20 13:39
4053
我在调试keygenme1的时候卡住了,

在00401237:    BF F8DC4000     mov  edi,  0040DCF8       ASCII"78787878"
    0040123C:   8B15 86DC4000   mov edx,  [40DC86]

请问ASCII 的“78787878” 对应的16进制数是 0040DCF8  ?
如果不是那这个0040DCF8是什么?
如果是地址的话,为什么外面没有向下面那行代码一样加上 [ ] 括号呢?

请前辈们不要笑话。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
0040DCF8是立即数 在该数对应地址存放 ASCII"78787878"
[40DC86]表示取地址40DC86处的值
2007-10-20 15:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
即然是立即数的话,怎么不是直接存放到EDI中呢?

汇编语言里面好像是立即数寻指,是直接把数值存放到寄器中的吧。

我仔细看了确实0040DCF8是一个常量的地址,而[40DC86]是取40DC86内的地址的地址的值 ,但是这和我看的汇编语言书好像有些不太一样,也可能是我以前学习的时候理解错了。 请大家给详细的解释一下。
2007-10-20 23:41
0
雪    币: 177
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=放纵;373088]即然是立即数的话,怎么不是直接存放到EDI中呢?

汇编语言里面好像是立即数寻指,是直接把数值存放到寄器中的吧。

我仔细看了确实0040DCF8是一个常量的地址,而[40DC86]是取40DC86内的地址的地址的值 ,但是这和我看的汇编语言书好像有些不太一样,也可能是我以前学习的时候理解错...[/QUOTE]

这个我也不是很明白的
不过我觉得这个是反汇编的和使用的工具有关吧~~
你自己写汇编的时候其实也可以把数直接给EDI的~再用[EDI]来取立即数作为地址指向的值~
呵呵,不过2楼的绝对是正解
2007-10-21 09:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我最后一思考,应该是在数据段中设定的一个变量,而调试器里不显示变量名,而只是变量的一个地址。暂且这样理解。
2007-10-21 22:12
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我想吃猪肉,所以我学习....
2007-10-22 16:11
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
7
我的理解是:第一行那个是内存中通过运算后得到的字符串,暂时存放在那个地址,也有可能是一个常量。
第二行那个就是一个常数,全局的常量
2007-10-22 16:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢大家了。
2007-10-24 22:10
0
游客
登录 | 注册 方可回帖
返回
//