打开程序,会惊讶发现没有确定键。这是个delphi写的程序,没有加壳。费了很久,才搞懂这个。
http://bbs.fishc.com/thread-40611-1-1.html
![](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214331812-2101700783.png)
![](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214331812-2101700783.png)
两种方法:
1,找到名字/序列号。像这种情况。信息肯定保存在代码中,输入的和保存的做了比对。
2. 暴力破解。这就不用多说了。
先做第一种,寻找序列号。使用dede反汇编一下,
![1.jpg](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214332327-1078224300.jpg)
看到这个模块,里面有各种事件,看那个chkcode函数。记下地址,我们在OD中进入。
打开od--->随便输入数字--->然后会在上面那个地址断下。
![2.jpg](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214332937-1984892126.jpg)
接下来我们单步走。
![3.jpg](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214333749-1659253388.jpg)
注意圈起来的三个地方。esi中保存的是姓名的长度,然后再加上5.这个值到后面会有用。暂时把这个设为a
往下走。逐渐会有信息出现,序列号出现。
![4.jpg](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214334187-1895758793.jpg)
序列号保存在edx中,这里的15就是我们的a
![5.jpg](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214334624-1819508915.jpg)
总体来说,结果就是 Name:12345 Serial: 黑头Sun Bird(a)dseloffc-012-12345.
(a)这个值就是字符长度加上5.
然而,把这输进去,并不会得到我们想要的结果
其实a应该是10
2.爆破
在上述的基础上,逐渐到后面,右键--转到--下个函数过程。会找到转折点。
在这,我们用一种巧妙的方法。同样用dededark,panelclick
![](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214335249-1754564872.jpg)
按地址进入。
![6.jpg](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214335577-2123343294.jpg)
关键跳转
![7.jpg](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214336031-1472161636.jpg)
很显然nop掉就可以了。
![8.jpg](https://images2015.cnblogs.com/blog/730929/201511/730929-20151126214336656-587170837.jpg)
女神很漂亮。