好友
阅读权限10
听众
最后登录1970-1-1
|
http://www.brsbox.com/filebox/do ... 06b2574248272f5fe00
大家好我们是“云之深处”
刚刚看了“小生”的一个小教程。。。。感觉非常不错。。。。特别是在INI处找有用信息。。
嗯。。。。学习了。。。
下面我也借这个小练习给大家做个小动画。。。权当是给新手入门吧。。。
下面开始。。。
同样没有提示。。。。
运行程序。。。
不好意思刚才断点没有清。。。
重新来吧。。
这里有一大堆跳。。。。我们先下断。。。看看是哪一个,。
来到一个没有提示的地方。。。。我们不用理它。。。关键我们是要知道这里是错误的就行了。。。
现在我们看看它是从什么地方跳来的。。
00402A70 . /0F85 83010000 JNZ Unhurrie.00402BF9
这里跳向了“死亡”我们下好断再来过看看。。。。我们不让它跳这里改反。。。
寄存器出现假码。。。向下走走看吧。。
00402A9A .E8 014B0000 CALL <JMP.&MFC42.#800>
这个CALL出现了真码。。。。应该是算法CALL我们就不进了~~以后大家研究算法时再说吧。。
堆栈 SS:[0012E864]=003A3AF0, (ASCII "CRGTE-DFNSV-N7DUA-ENUVY")
ECX=003A3AE4
这个应该就是真码了。。但我们不去试它。。。
继续向下。。。
00402AAB .FF15 24934000 CALL DWORD PTR DS:[<&MSVCRT._mbscmp>]; \_mbscmp
mbscmp明显的一个比较函数。。。。、、、
这里就是真假码比较了。。。那么下面一定就是关键跳了。。。。
00402AB6 . /0F85 9E010000 JNZ Unhurrie.00402C5A
这里大家说能跳吗。。。。呵呵。。。。
下面开始向注册表写东西了~~~~
我们不用跟了吧~~~运行起来
嗯~~~又来到了我们刚才下的断点了。。。。又出错了。。。呵呵。。。
不会的。。。这个东东真假都调用了一个CALL
OK
成功。。。。。。
CRGTE-DFNSV-N7DUA-ENUVY
这个东西留给大家自己试试吧。。。
88
+++++++++++++++++++++++++++++++++++++
更正一下动画中提到的算法CALL是不对的
应该是这个
00402A7E .E8 1D020000 CALL Unhurrie.00402CA0 ;算法CALL
是对用户名逐位进行的浮点运算
而最早期的错误跳转对用户输入假码与真码的位数进行比较
00402A6C .837A F8 17CMP DWORD PTR DS:[EDX-8],17;真码位数与假码进行比较
注意这里的17不是我们一般理解的17而十六进制的。既23 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|