首页
社区
课程
招聘
[旧帖] [分享]我谈破解! 0.00雪花
发表于: 2008-1-11 17:10 8464

[旧帖] [分享]我谈破解! 0.00雪花

2008-1-11 17:10
8464
  感觉这篇文章对新手很有帮助,就转载过来了,希望对大家有用

  
 转自霏凡论坛 挥剑斩浮云

    瞄到一款要注册的软件,先看下能不能破,是能破解的软件吗?有这么一句话:若软件能在本机上完整的运行一遍;一般是可以破解的.若软件是Demo(演示试用版),那就不用白忙了.你可以休息了.
能破的就先查壳,工具如peid,die, 有壳常规的方法是先脱壳,不同的壳有不同的脱法,有的有好几种脱的方法,这就看你的能力了.一般小壳用脱壳机就可以搞定的,如RL!dePacker ,quick unpack,超级巡警之虚拟机自动脱壳机.我这人很懒的,能用脱壳机脱的,绝对不会手脱,个人认为脱壳只是破解的一部分,重要的还在于破解,脱壳我要的只是一个结果,就是把它脱掉,至于怎么脱的这个过程就可以随意了.
说到手脱,谈谈几种最基本的方法吧~ 工具:OD
1.单步跟踪
OD载入,不分析代码,.近CALL—F7,远CALL—F8,实现向下的跳转.有回跳处,下一句代码处—F4 (右键—代码断点运行到所选),大的跳转(大跨段,JMP***或JE***或RETN),很快就会到OEP.
2.ESP定律
F8,观察OD右上角寄存器中ESP有没有实现(红色),.命令行下 DD ******(当前代码ESP值),回车,DD就选中下端地址,断点—硬件访问—DWORD断点,F9运行,到跳转处按F8 到DEP.
3.最后一次异常
OD打开—点选项—调试选项—去掉所有异常—CTRL+F2重载,SHIFT+F9.只到程序运行,记下次数M,CTRL+F2重载—按SHIFT+F9(次数为M-1次),按CTRL+G—输入OE右下角的SE句柄前的地址,F2下断—SHIFT+F9到断点处,去断按F8,到OEP.
4.内存镜像
OD载入软件,点选项—调试选项—忽略全部—CTRL+F2重载,ALT+N打开内存镜像,找程序第一个.rsrc—F2下断—SHIFT+F9运行到断点,再打开找到程序第一个.rsrc上面的.code处(就是00401000处),F2下断—SHIFT+F9或无异常按F9,到OEP.
5.模拟跟踪
无暗桩情况下使用
F9试运行,跑起来就无SEH暗桩之类的,否则就有,.ALT+N打开内存镜像,找到包含“=sfx,imports reloco tions”字符,地址=***  命令行输入:tceip<***,回车.
6.一步到OEP
只适合少数壳,如UPX,ASPACK
CTRL+F—输入:POPAD.回车查找—F2下断—F9运行到此处,来到大跳转处,点F8到OEP.
7.SFX
设置OD,忽略所有异常,切换到SFX选项卡,选择“字节模式跟踪实际入口”,确定,.重载—“否”压缩代码,到OEP.
至于那些变形壳,双重壳,超强壳,你可能要运用到几种方法,还可能要用到脚本,或者改点什么,这基本上都有人做过总结的,什么壳用哪种方法,详细步骤等等,你去专门的网站搜下就可以找到的.
壳脱完后不要忘记修复,工具:Import REConstructor(小鸟,我起的名字,呵呵)
请记住这么一句话:一款软件脱壳后要修复是很正常的一件事.
修复后能运行了,就随意输入什么东西试注册下,关闭再运行,瞄下软件是哪种注册类型的:
若有注册错误/正确提示,下bp MessageBoxA断点 VB程序下bp rtcMsgBox
若无任何提示,下bp GetDlgItem
若下次启动提示,下bp GetDlgItem获取按钮事件代码
若未注册一启动或关闭就跳出个注册框或提示框,下bp RegOpenKey(A)或 bp CreateFileA或bp GetPrivateProfileStringA.
若未注册一启动或关闭就打开网页链接,下 bp ShellExecuteA 
若未注册就日期限制,下bp GetLocalTime 获取本地时间,bp GetSystemTime 获取系统时间bp GetFileTime 获取文件时间
若网络验证,下bp ExitProcess 改网络验证为本地验证
若狗加密,一启动就会检测所需要的狗文件,下bp CreateFileA;若没有狗文件,提示错误,下bp MessageBoxA
找到关键CALL及关键跳,接下来你是想爆破或追码或写注册机,那就真的要看你的能力了.
爆破常见修改:
jnz/jne->nop 75->90 
jnz/jne -> jmp 75-> EB 
jz/je->nop 74->90 
jz/je -> jmp 74-> EB 
jnz -> jz 75->74 或 0F 85 -> 0F 84 
jz -> jnz 74->75 或 0F 84 -> 0F 85 
jnz -> jz 75->74 或 0F 85 -> 0F 84 
je-> jne 74->75 或 0F 84 -> 0F 85 
爆破有首无敌口诀的:
一条(跳)就死,九筒(90)就胡 (对应上面的(2)――修改为nop)
一条(跳)就胡,一饼(EB)伺候 (对应上面的(1)――修改为jmp)
妻死(74)便妻无(75) 
爸死(84)便爸无(85) 
追码我知道的方法:
1.OD载入.使用自带的"ULtra字符串参考"插件(一般VB的程序就用UNICODE!非VB的就用ASCII),查找到提示信息双击之,向上看,查找关键CALL,F2下断,F9运行,随意输入注册,程序若被断下,看右边的寄存器窗口.
2.OD载入,按CTRL+N,找比较函数(譬如C++编写的,找lstrcmpA,VB编写的,找_vbastrcomp),点右键的enter,F2下断,F9运行,随意输入注册,程序若被断下,看右边的寄存器或右下脚的内容.
3.用W32Dasm(非无极版)载入程序,参考---串式参考,找提示信息,双击来到代码处,向上找关键CALL(一般关键跳上面的一个CALL就是关键CALL),记下前面的代码,OD载入,CTRL+G输入记下代码,F2再F9,随意输入注册,若被断下,看右边.
4.用W32Dasm(非无极版)载入,点击函数-输入,找比较函数,双击之.调试-加载处理(CTRL+L),直接点载入,W32Dasm停下来,若乱跑,请重头再来,F2下断加亮的那行,前面出现小黄块后按F9,随意输入注册,若被断下,可以看见我们输入的假注册玛,向下找真注册玛.
5.随意输入注册,记下提示信息.使用WinHex,打开RAM,找到最下面那一行,点确定-整个内存再点确定,CTRL+F-填入你随意输入的假注册码,一般真注册码就在上面,若不在,请按F3继续查找.
写注册机,我习惯用keymake,当然你若会一种或多种编程语言,用之写注册机,那就更能说明你牛了, 呵呵~~~
有很多人问:学破解有什么条件吗?
有人开玩笑说过:性别只能是男或女,年龄 > 7 岁,智商正常,可以独立完成电脑开机关机,无理解障碍,无视觉障碍......
个人认为学破解最好知道点汇编知识,有句名言说:学破解不懂汇编者永远只能是菜鸟.这句话到真的一点都没有夸张,真的是这样.
这里写一点汇编最基本的东西吧:
cmp a,b //比较a与b
mov a,b //把b的值送给a,使a=b
ret //返回主程序
nop //无作用,英文"no operation"的简写,意思是"do nothing"(机器码90) (解释:ultraedit打开编辑exe文件时看到90,等同于汇编语句nop)
call //调用子程序,子程序以ret结尾
je 或jz //若相等则跳(机器码74 或0F84)
jne或jnz //若不相等则跳(机器码75或0F85)
jmp //无条件跳(机器码EB)
jb //若小于则跳
ja //若大于则跳
jg //若大于则跳
jge //若大于等于则跳
jl //若小于则跳
jle //若小于等于则跳
pop xx //xx出栈
push xx //xx压栈
更为详细的指令请查阅汇编书籍。
我知道的破解好像就这些了吧,简要的说了下.破解是编程的逆命题,学习点对编程是有好处的.但是建议还是不要到处破,现在中国的法律对网络还不是很完善,以后肯定会有规定的,毕竟软件作者也不容易,他的权益是要被保护的,不过有些作者软件价格是有点过了,呵呵~~~破解学是可以学的,任何知识学会了绝对是没有坏处的.会了,要用什么注册软件,破掉它在自己的电脑上偷偷用用,我想应该不会有人会说什么的吧?呵呵~~~

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (30)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看的好迷糊啊~~
2008-1-11 17:28
0
雪    币: 177
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
修复后能运行了,就随意输入什么东西试注册下,关闭再运行,瞄下软件是哪种注册类型的:
若有注册错误/正确提示,下bp MessageBoxA断点 VB程序下bp rtcMsgBox
若无任何提示,下bp GetDlgItem
若下次启动提示,下bp GetDlgItem获取按钮事件代码
若未注册一启动或关闭就跳出个注册框或提示框,下bp RegOpenKey(A)或 bp CreateFileA或bp GetPrivateProfileStringA.
若未注册一启动或关闭就打开网页链接,下 bp ShellExecuteA
若未注册就日期限制,下bp GetLocalTime 获取本地时间,bp GetSystemTime 获取系统时间bp GetFileTime 获取文件时间
若网络验证,下bp ExitProcess 改网络验证为本地验证
若狗加密,一启动就会检测所需要的狗文件,下bp CreateFileA;若没有狗文件,提示错误,下bp MessageBoxA

这些东西还是比较经验的哦~~
学习了~~
2008-1-11 18:09
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
强烈要求置顶
2008-1-11 19:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
是篇好文章!
2008-1-11 19:07
0
雪    币: 202
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=;]...[/QUOTE]
不错!应该说汇编是个很好的破解基础的说!学习汇编是个不错的选择,不过学破解真的需要学习很多知识的说!
2008-1-11 20:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ltr
7
收藏学习..
2008-1-12 10:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
很不错啊,谢谢分享
2008-1-12 10:27
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
“学破解不懂汇编者永远只能是菜鸟”。“三人行”或是“天草”???总之很眼熟就是。
2008-1-19 11:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不错的了 很好啊 简洁 对我这样的菜鸟 很有帮助谢谢
2008-1-19 14:07
0
雪    币: 189
活跃值: (46)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
再好的经验,再多的资料,没有自己的努力,没有自己的实践,一切都只是别人的,脚踏实地,加油吧!
2008-1-19 14:44
0
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
谈的蛮有深度的哦~
2008-1-19 15:21
0
雪    币: 186
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
都是飘云和三人行教材的内容
2008-1-19 22:05
0
雪    币: 251
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
确实不错,很受用
2008-1-20 10:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
呵呵!
不错的转载啊!
2008-1-20 11:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
收藏了,以后慢慢学习~~~
2008-1-20 14:18
0
雪    币: 189
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
很有意思!C
2008-1-20 16:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
排版不行啊。。看得有点晕。不过还是学习了
2008-1-20 17:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
还得复制下来看。
2008-1-21 17:29
0
雪    币: 192
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
不错不错,都是一些基础的东西。。好理解
2008-1-21 18:52
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
收藏备用,谢过了。
2008-1-21 19:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
真是好文章,值得收藏
2008-1-21 20:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
写的很不错,对与刚刚初学的人很有帮助,虽然不会了解很多专业用语但是多多练习有问题就问的话进步应该很快的
2008-1-21 21:28
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
very good
2008-1-23 14:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
老大你的字体字号比你的文章还有个性
2008-1-23 16:01
0
游客
登录 | 注册 方可回帖
返回
//