首页
社区
课程
招聘
[求助]一个菜鸟级问题
发表于: 2006-5-31 19:32 4854

[求助]一个菜鸟级问题

2006-5-31 19:32
4854
把一个crackme反汇编后里面有个命令:
jnz short 00440F72

那个short是什么东西?

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
是一个指令修饰符,说明这个跳转是有字节限制的,最大为-128 ~~ 127
2006-5-31 20:34
0
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
3
竟然发了两贴
2006-5-31 20:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
很久没用汇编,现在想起来了,和SHORT,LONG,QUAD一类的。
感觉看别人的算法好累~~~
谢谢ThinkSJ
2006-5-31 21:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这是个测试用户名位数的程序,我不懂
test    eax, eax    现在eax里面已经是用户名maqiu了
je      short a_CrackM.00403A3B  
mov     eax, [eax-4]  这一步执行后eax就变成00000005。正好是我用户名的位数,这是什么原理,我看不明白。

2006-6-4 11:21
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
test eax,eax   ;测试用户名是否为空
je short a_CrackM.00403A3B ;为空则退出该函数
mov eax, [eax-4]  ;取用户名的长度
2006-6-4 12:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我想知道在[eax-4]中到底存放了个什么数据,是用户名这个字符串的长度么?
为什么会放在[eax-4]中,和寄存器或者内存的结构有关系么?[eax-5] [eax-6]又是什么呢?
小弟实在不明白,请大哥讲详细点行么。我看到的这些东西和微机原理上讲的差距还是很大的。
2006-6-6 13:16
0
雪    币: 433
活跃值: (176)
能力值: ( LV13,RANK:1250 )
在线值:
发帖
回帖
粉丝
8
是啊,我在好多Delphi程序里都看到过这种用法
好象是Pascal语言的约定,字符串的长度是保存在它的指针前面一个双字里,根据长度来确定字符串的终点(而C语言里字符串的界定是以遇到第一个'\0'为止,长度需要自己测量),这样,如果eax的当前值是某个字符串的首地址,那么dword ptr [eax - 4]就是这个字符串的长度
2006-6-6 14:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好难懂的说,看来还得回头补补
2006-6-6 14:45
0
游客
登录 | 注册 方可回帖
返回
//