破解基础篇三

花指令去除

1、花指令是程序设计者为了防止程序被破解而进行的方法之一,该方式会产生很多无用的但却不影响程序正常运行的代码,也同时可以防止字符串查找。本实践过程采用的是一个E语言编写的程序。

2、首先我们查看一下加花和未加花的程序不同之处,加过花的程序查到的字符串比未加花的程序显然字符串多,标明有很多无用的字符串用来实现干扰。

908755-20160510000241546-200005315.png

908755-20160510000250093-159650776.png

3、这里去除E语言花指令用到了OD的一个插件是e Junk code,这里初始地址一般都写00401000,大小都写10000足够,这样点击去除就能去除花指令

908755-20160510000259296-1193005287.png

4、可以观察去除花指令后的代码,首先先得去掉模块分析,可以看到很多之前的无用代码都没了,但是需要注意的是,去花后的指令可能有些地方还是和原始程序存在差别的。

908755-20160510000308640-74198153.png

5、其次,我们通过之前学习的方式,找到关键跳转

908755-20160510000316187-803658461.png

6、修改关键代码

908755-20160510000325280-1950500229.png

7、保存修改后重新打开程序,发现完成了对应的要求

908755-20160510000333030-788440229.png

8、这里对整个过程做一下小结,首先我们得发现是否程序加花,如果加花,会出现很多无用的代码和无用的东西作为混淆,此时我们必须去花;去花主要用的就是插件,这里不同的插件还是需要各位自己在平时的过程中收集;去除完花指令后,主要的工作就类似于之前文章中提到的一些知识的运用。

易语言非独立编译查找字符串

1、独立编译:运行时会把需要的支持库释放到一个系统临时文件夹的子目录内,然后运行.

静态编译:运行是不需要任何的支持库支持就可以运行,支持库已经和exe结合到一起了.

2、有些程序,会利用独立编译后通过加壳伪装成静态编译程序,伪装壳的脱壳会在之后的学习中进行介绍。

3、首先我们载入程序,超找字符串发现字符串很少

908755-20160510000341671-1814205407.png

4、方法1:我们双击字符串中的error后看到对应代码上方是FFD0的机器码,我们在这下断后重新载入运行。

908755-20160510000351859-166277923.png

5、程序断在指定为位置后,我们F7进入,之后F8单步到了如图call后继续F7进入

908755-20160510000400374-1956525154.png

6、继续单步看到cld后

908755-20160510000408859-1530901921.png

7、此时查找字符串可以找到对应内容

908755-20160510000416093-47851346.png

8、方法二:首先我们将程序运行起来,之后我们来到00403000处,查找字符串,这时也能查到对应内容

908755-20160510000423734-169817696.png

9、推荐使用第一种方法,相对于第二种找的字符串更全。

10、在这肯定很多读者会问,为什么有些位置是F7有些是F8。个人觉得因为有些call你单步下去会发现程序跑起来,所以得跟进。还有就是为什么cld处就能查到字符串?为什么00403000处也能查到字符串?而这过程为什么必须要程序运行起来的时候才能找到字符串?这些问题我有的也想不太明白,可能知识积累不够,所以在之后的学习中,如果我理解了在回头解答吧

验证窗口的去除

1、适用于一些外挂程序的运用

2、首先我们先找到两个位置,第一个:这里我们习惯性的来到00401000处后ctrl+f查找push 10001指令。

908755-20160510000432577-622018445.png

908755-20160510000451734-170835679.png

3、我们记下该指令的下面第二行指令push 0x52010007

908755-20160510000542827-535047617.png

4、我们回到00401000处,ctrl+b查找ff25在这我们往上看,两个call上面的那个push指令即push 0x52010001

908755-20160510000552546-1828824077.png

5、在这我们做一下解释:我们记录的第一个push是第二个验证窗口的压入的数值,而第二个记录的内容也是压入第一个验证窗口的数值,在这第一个call是弹出第一个验证页面。因此我们可以考虑,把压入第一个窗口的数值直接改成压入第二个页面的数值,这样是否可以直接跳过第一个窗口。

6、我们作如下修改

908755-20160510000604796-1289381087.png

7、保存后打开程序,发现第一个窗口的验证过程已经去除了。

908755-20160510000615874-763308923.png

工具与实例程序

1、本次的实例学习中所用到的主要是OD,注意使用的时候最好常清理UDD文件

2、本次实例学习所用到的程序请见:链接:http://pan.baidu.com/s/1o7Z4WrC 密码:t1oo

转载于:https://www.cnblogs.com/miaohj/p/5476221.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值