能力值:
( LV4,RANK:50 )
|
-
-
2 楼
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
此文关键是:这个东西的致命缺点就是明码比较
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
很好,又学到东西了!
|
能力值:
( LV9,RANK:170 )
|
-
-
5 楼
写的很好,语言生动
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
刚来的看了看不错!!!!!!!!!!!!!
|
能力值:
( LV9,RANK:1130 )
|
-
-
7 楼
哇,短小精悍,
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
厉害厉害,佩服佩服.
|
能力值:
( LV12,RANK:210 )
|
-
-
9 楼
/*403E9F*/ MOV EAX,DWORD PTR DS:[ESI-4];这是伪码长度赋给EAX
/*403EA2*/ MOV EDX,DWORD PTR DS:[EDI-4];这是真码长度赋给EDX,也就是9。
整段代码其实就是2个bstr, 做比较而已
/*403EA7*/ JA SHORT vb经典编.00403EAB;JA的意思是高于时跳转,条件是ZF=0且CF=0。注册框最多只允许你输入9个数字。
这里应该算一个bug, 如果伪码长度eax不为0, 并且不比真码
长度大, 而且bstr的内容快也相同的话, 那么也能成功,
实际上是不科学的.
至于eax为什么不能为0, 是因为后面的and eax,eax来判断了.
/*403EDB*/ JE SHORT vb经典编.00403EFF;看到这一行我本来还高兴了一下,以为可以构造一个新的注册码,谁知这条语句跳向的是AND EAX,EAX。希望破灭。
顺便说说这句, 如果是je, 那么一定就是成功了.
在2个串都是机器字长度的倍率的时候, 肯定是je了.
这是属于加速比较串的代码一部分.
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
下个 bp ShowWindow 断他错误提示,然后这个时候翻一下堆栈,就可以发现好马了 不知道这是什么方法...
|
|
|