- UID
- 26372
注册时间2006-12-3
阅读权限30
最后登录1970-1-1
龙战于野
该用户从未签到
|
写在前面:
本人是菜鸟,本人的观点是:即是菜鸟,就应该把每个没有搞明白的问题搞明白,吃透最基础的东西。
脱壳时,遇到加壳的程序,我们用各种脱壳机
破解时,遇到VB类程序我们用VB的CRACK软件??????
如果想真正的提高软件的CRACK能力,就应该不依赖通用工具去解决这些问题。希望各位菜鸟兄弟能明白,为什么老大们让小弟们学习手动脱壳啊?不就是为了让我们会分析程序么?
本人发此贴的目的是一起来研究对于PB类程序调试时,如果完全抛弃PBKILL类的调试工具后,我们只用OD该如何分析!!!
所以请各位兄弟看好!!!
谢谢
前几天Moodsky给小弟发了他的作品——《关于在Windows XP中利用万能断点找出关键跳转》,深入学习与练习之中!!
对于VB类程序,小弟也试了几个,使用此法,追踪注册码真的不错!
和我一样的菜鸟们,我把moodsky的万能断点方法给简化地说明了一下,一起学习吧!!!!
下面就是过程
一般过程也就是
OD载入程序,右键选查看--USER32--
CTRL+B,将XP下万能断点粘贴F3 A5 8B C8 83 E1 03 F3 A4 E8,
点搜索就到了万能断点的地址代码段,记下代码地址,
像我的电脑里,就是77D3353D F3:A5 rep movs dword ptr es:[edi], dword p>
在程序的注册处填好注册信息后,先不要点确定
我们回到OD里,ctrl+g输入77D3353D(我的电脑里是这个值)
F2下断点,按注册确定后,程序断下,
按F9观察寄存器中的值直到第一次看到我输入的假码《我这里输入的是12345689》
就停止按F9,在EDI处,点右键,选数据窗口中跟随,到了数据窗口了,点右键,选断点----内存访问,
F9运行,断下,ALT +F9按很多次就可以返回到程序领空的代码地址,F2下断,重新载入程序,运行后,输入注册码确定,就断在关键处,F8单步就能看见注册码,也就是真码了!!!
我要讨论的问题就是
我用以上方法对VB类程序进行注册码追踪,一直效果不错!!!
但是我拿此法对PB类程序进行注册码追踪时,程序始终在pbvm90.dll里转来转去,不管你按多少次alt+f9,都无法返到主程序领空里。其实我们可以这样想,VB类程序一般都是msvb60.dl里转,可是我们能返回到主程序领空,它们的共性这么多,为什么回不到呢?
各位高手如果有曾经跟踪过PB类程序的,希望能讲讲经验啊!!!!!!!!!!!!!!!!!!!!!!1
[ 本帖最后由 wyh1983 于 2006-12-28 14:02 编辑 ] |
|