百科狗-知识改变命运!
--

软件加壳和脱壳问题

小肉包1年前 (2023-12-22)阅读数 9#综合百科
文章标签脱壳程序

查壳机查壳判断有没有加壳那简单OD载入看程序入口,不同编程语言有不同入口,当然壳也一样。OD载入程序 ,搜索字符串,没有字符串就加壳了还有就是用资源编辑器载入

他会提示资源被加密了 破解只要一个动态调试器+强悍逆向能力就OK现在破解一般就用OD动态反汇编调试器。他反汇编出来是汇编代码

软件加壳和脱壳问题

所以必须学习汇编才能看懂如果你够牛

整个程序你都能根据反汇编出的汇编代码分析这个程序的思路(思路+编程能力=源代码) 脱壳可以找一些静态脱壳机脱壳,不过不是万能最好就是动态调试脱壳没错

就是用OD来脱壳,因为是动态调试器以前的不可能现在都可以实现 破解不一定需要脱壳才能破解

带壳调试找到关键后可以写内存补丁来破解

或者嵌入程序patch代码写补丁很方便哦~还有一点

破解是

crack

瞄到一款要注册的软件,先看下能不能破,是能破解的软件吗?有这么一句话:若软件能在本机上完整的运行一遍;一般是可以破解的.若软件是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”字符,地址=*** 命令行输入:tceipnop 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压栈 更为详细的指令请查阅汇编书籍。 我知道的破解好像就这些了吧,简要的说了下.破解是编程的逆命题,学习点对编程是有好处的.但是建议还是不要到处破,现在中国的法律对网络还不是很完善,以后肯定会有规定的,毕竟软件作者也不容易,他的权益是要被保护的,不过有些作者软件价格是有点过了,呵呵~~~破解学是可以学的,任何知识学会了绝对是没有坏处的.会了,要用什么注册软件,破掉它在自己的电脑上偷偷用用,我想应该不会有人会说什么的吧?呵呵~~~ 这是我很久以前发表的一篇文章...... www.hjzfy.com 2010.2.23

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)