目录
破解的关键
演示程序:pc2am2p
- 从爆破入手,到现在逐步进入程序的内部,认识不同编译器开发的程序,探索不同的加密逻辑。
- 前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天分析一个VB程序的加密和解密思路
- 我们需要掌握不同编译器编译出来的程序的特点,然后才能有针对性的进行逆向。
- 其中,在逆向一个程序前,先搞清楚这个程序是由什么编译器和神马语言写出来的,是灰常必要的。
- 高手只需要从代码间的细小差别就可以看出端倪,而菜鸟们也有便捷的工具可以一步到位告诉你这个程序是由什么编译器编译的:PEiD.exe
- 这次的程序是一个VB程序。
- Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程语言。
- VB是由事件驱动的编程语言:就是在可视化编程环境下我们可以绘制一些窗体,按钮,编辑框等控件,然后为这些控件所可能引发的事件如按钮被单击或者被双击编写对应的处理代码。
- 所有的VB程序几乎都是依赖于一个外部的动态链接库。这个动态链接库的名字是:MSVBVM60.dll(可能有多个版本,但名字都差不多~)
- 然而正是因为VB中所有的API函数都在DLL中去实现,所以导致我们在跟踪程序的执行代码时灰常频繁地在DLL领空和程序领空跳来跳去跳来跳去跳来跳去跳来跳去跳来跳去跳来跳去 。。。。。。
- API函数的作用有很多,例如作为中介让我们的程序和指定设备进行沟通。
- 针对变量:
__vbaVarTstEq
__vbaVarTstNe
__vbaVarCompEq
__vbaVarCompLe
__vbaVarCompLt
__vbaVarCompGe
__vbaVarCompGt
__vbaVarCompNe - 针对字符串:
__vbaStrCmp
__vbaStrComp
__vbaStrCompVar
__vbaStrLike
__vbaStrTextComp
__vbaStrTextLike
首先安装程序:
这个程序在每一个机器都有一个特定的注册码,我们这次就来找这个注册码。
首先OD载入:
Ctrl+N找到
然后设置断点,重载,F8接着走
找到敏感信息,不妨记下来试上一试
成功注册: