好友
阅读权限 30
听众
最后登录 1970-1-1
小黑冰
发表于 2008-11-15 11:30
标 题: 【原创】破解 一般步骤多方法总结
作 者: 小黑冰
时 间: 2008-11-15,10:04
链 接: http://www.52pojie.cn/viewthread ... e%3D1&frombbs=1
一,常见判断有壳方法知识总结
1.PEID查壳
2.载入OD是否有提示代码被压缩
3.根据程序入口代码
4.看是否可以查得到明码字符串
5.资源编辑工具看是否可以改资源
二,常见判断与解决附加数据知识总结
1.PEID查壳时显示[overlay],95%的情况下是有附加数据,但是有个别程序没有附加数据,PEID可能误报,此时你可以在脱壳 后先试运行程序,如果能运行说明就没有附加数据;
2.脱壳后的文件明显比脱壳前的文件小,且经修复无法运行——>十之八九是附加数据在搞鬼!
3.脱壳后运行提示“Invalid data in the file.”说明有附加数据。
修复方法
1.工具overlay修复
2.进制工具打开复制数据修复
三,常见自校检解决办法知识总结
1.双开OD法(如果软件有防多开窗口的限制,需要先解决这个问题。(不推荐 因为这样学不到东西)
2.跟踪退出函数。一般都是调用ExitProcess、PostQuitMessage
3.利用PEID的插件KANAL V2.90 。找到密码学算法和核心 CRC或者MD5实现磁盘文件校验或者内存映像校验关键的地方
四,常见自校检解决办法知识总结
1.校检日期
2.校检大小
3.校检旁文件
校检自身大小的软件一般方法
我们看一下未脱壳文件的大小为:10752字节转16进制为2A00,再看看脱壳后的文件大小30208字节,即7600,关键是如何找到对自身大小进行对比的语句,
1.W32Dasm上场。用W32Dasm载入脱壳文件,我们只要搜索00002A00即可。更改代码002A00为脱壳后的大小007600即可。(太多局限)
2.对于VB检测自身大小的软件我们还可以跟踪FileLen函数,因为VB一般都用FileLen检测自身的大小,用OD载入脱壳文件下断BP rtcFileLen,F9后断下,ALT+F9返回。
五,常见工具暴破方法知识总结 找不到跳转,狂返回到主程序代码段内 在判关键跳转
1.跳过错误 相反与JMP。
2.不跳成功 相反与NOP。
3.改比较。
4.改比较中其中一个返回直.
六,常见去NAG窗方法知识总结
1.下调用窗口函数法
2.堆栈F12调用法
3.改跳转法(如果是注册才取消的NAG窗)
思路:不让NAG窗口运行就行```
七,常见工具追明码方法知识总结
1.OD追码法
找到关键CALL 直接下INT段点 然后运行到这 直接看堆栈上下或寄存器的直
关键CALL上面的PUSH POP LEA等传输数据等````
2.WinHex追码法
步骤:
1.启动需要破解软件
2.输入用户名和注册码,然后按确定
3.弹出一个对话框(切记,不要按确定!!!!!!!!)
4.启动WinHex
5.选择Ram编辑器
6.打开你所要破的软件的Ram的主要内存(基本上是最下面那个+)
7.搜索注册码
8.如果第一次没搜到按F3搜索下一个
9.然后就可以发现注册码
3.TRW2000追注册码的通法
1.将程式的注册对话框打开,输入你的姓名和任意的注册码(推荐用987654321)
2.按Ctrl+N呼叫出TRW2000,然后下中断(一般用bpx hmemcpy),回车,键入g,回车
3.返回注册界面,按下注册窗中的"确定"按钮.
4.如果被TRW拦到,说明刚才打的中断发挥作用了,可以继续工作.如果出现的是"注册失败"的对话框,说明TRW的中断没有作用,只有重复第二步,换个中断试试.(中断设置,看雪教程很详细,不重复)
5.键入bc*,回车,键入pmodule,回车,猛按F12键,等到出现"注册失败"的画面时,记下刚才按F12键的按数
6.第二次重复第一步至第四步,这次按(第五步记下的按数减去1)下的按数,停下来.
7.开始按F10键单独追寻,找到关键Call和关键跳转,在这个关键Call处d eax d edx,,多看看,有时就会看到注册码,出现在TRW的右上方
8.如果没找到,当然要按F8键进去关键Call观察了,继续追踪可疑Call和可疑跳转
注意:如果搜到最后还是没搜到,可以采取以下的方法,再试.(如果真找不到,就只能用其它软件了)
对于没有弹出对话框的软件似乎这方法没用!!!!
1.如果用注册码没搜到,就用搜用户名
2.有些软件对于中文用户名不支持,因此就使用英文用户名
3.有些软件对于注册码又长度要求,因此就使用比原先的注册码较长或较短的注册码
4.建议输入的注册码为987654321,因为如果是123456789会与机器中的一些数字重复
八,常见跳出与填加的网页解决知识总结
现在我们同时再找那个跳出的网页.
我们在堆线出现的真码处右键 -- 按在数据窗口中跟随
看到啦数据窗口出现很多你要改的字串了
除便改吧, 不用客气
先向上找 看到004F5040的网页地址吗..就是要找它
我们先不要急..再向上找004F4418 这个地址才是我们要找的真正修改地址
怎样改啦 :
先再打开多一个OD 在命令栏里打上 dd 004F4418 > ENTER >
再指着地址改为 HEX HEX/ASCLL(8位)
在004F4418 > 1A 处改为 00 就成功了
添加弹网页
006CE000 > 6A 01 push 1
006CE002 6A 00 push 0
006CE004 6A 00 push 0
006CE006 68 00E16C00 push dumped_.006CE100 ; ASCII "http://Blog.ShowHmily.Cn"
006CE00B 68 19E16C00 push dumped_.006CE119 ; ASCII "open"
006CE010 6A 00 push 0
006CE012 E8 C92EF47C call ShellExecuteA
具体怎么用,你只要让这段代码运行就可以了,可以让这段代码运行完再跳转到OEP也可以~
-------------------------------------------------------------------------------------------------------------------
本文原创于小黑冰, 转载请注明作者并保持文章的完整, 谢谢!
[ 本帖最后由 小黑冰 于 2008-12-12 03:51 编辑 ]
发帖前要善用【论坛搜索 】 功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。