破解黑与白——一点感想
在群中闲聊,偶然提到了黑盒与白盒,忽然有了些感想,与友分享。破解,实际上就是对程序的调试,只不过多数情况下是汇编级的工作,由于基本上是被别人创作的程序进行分析,因此较之源码级调试有难度,而且略显神秘。
不过,在调试与测试的原理上却也相通,比如说黑盒与白盒。黑盒测试,就是在对模块内部处理过程不清楚的情况下,只关心模块的输入与输出,然后分析程序工作正常否。而白盒则是要求对程序内部处理流程相当清楚,然后再分析,调试,测试的方法。这两种方法正是破解过程中常用到的方法。
先说黑,用黑盒法,可以是在我们刚拿到软件的时候,可以试着输些数进去,做为输入;然后运行程序;观察程序运行的结果;这个结果可以是程序总的运行后的结果,也可以是某个内部函数运行完的结果。
比如类似代码段:
PUSH EAX
CALL SUB
MOV EBX,EAX
这时一定关注CALL SUB这句前后值的变化。SUB是个黑盒,而在调用之前的数据为输入,返回后的结果为输出。通过这个观察可以粗略分析函数的功能,为以后的算法分析提供一些基础,可以让我们知道哪个函数是关键。
而白盒法,则要求能对模块中代码和流程有了解,这就需要能够在黑盒分析基础上,对关键的函数进行精读,单步调试,力求明白其中变化。只有这样,才能弄清算法流程,写算法注册机。对于汇编代码的阅读,我以前写个贴子,有兴趣可以一观。https://www.chinapyg.com/viewthread.php?tid=5321&highlight=%2Bcaterpilla
用好黑盒法,能够快速了解软件,一些爆破可以完成;而能够读懂代码,才能更好写出算法注册机。
由黑而白是个过程,需要积累汇编,程序设计等知识。
看过很多高手的教程,有的还出了书,一个感觉就是:真正的高手,都是能加密,也能破解。不仅是破解高手,更是编程高手。这等能顺能逆,收放自如,是何等的境界!!!!!
[ 本帖最后由 caterpilla 于 2007-1-16 12:06 编辑 ] 了解了,谢谢楼主!! 呵呵,有道理:lol: 谢谢,任重而道远,只有学习、学习、再学习 楼主就是高手了,佩服。。。你已经达到了。。。当然没人是顶尖的 :lol: 原帖由 caterpilla 于 2007-1-16 12:04 发表
在群中闲聊,偶然提到了黑盒与白盒,忽然有了些感想,与友分享。
........
真正的高手,都是能加密,也能破解~~~~~
何等的境界,吾辈尚需努力啊~~
努力学习ing~~ 有道理,谢谢楼主 是的,真正的高手是需要收放自如的,是随心所欲的 是的,真正的高手是需要收放自如的,是随心所欲的
可望而不可及 有哲理,楼主高手啦!!!!!
页:
[1]
2