分享
 
 
 

软件反破解的几个思路

王朝other·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

1、检测调试寄存器

(1)检测 SoftIce 等系统级调试器

检测softice的方法有很多.检测主要在驱动里中实现。

(2)监测用户级调试器

用户级调试器具有一下几个特征:

用户级调试器是采用MICROSOFT提供的DBGHELP.DLL库来实现对软件跟踪调试的。

被调试的软件其父进程为调试器。

所以可以采用如下的方法来检测:

a.调用API函数IsDebuggerPresent()(或是直接采用IsDebuggerPresent的反汇编代码,以防破解者拦截对该函数的调用)来检测是否有用户级调试器存在。

b.监测调试寄存器的方法。

c.采用TLB的方法,检查父进程的方法. 在WINNT下,可以采用进程注入的技术来检测软件的父进程是否正确的方法。

d.设置SEH进行反跟踪。

由于破解者者可以拦截软件对调试器的检测操作,所以将保护判断加在驱动程序中。因为驱动程序在访问系统资源时受到的限制比普通应用程序少得多,这也给了破解者增加了破解的难度。

2、CRC检校

增加对软件自身的完整性检查。这包括对磁盘文件和内存映像的检查,以防止破解者未经允许修改程序以达到破解的目的。DLL和EXE之间可以互相检查完整性。

为了防止破解者采用替代WORD,以及edocguard的DLL,通过计算DLL的CRC值来验证。

||||||3、运行时库的重新编写

破解者往往是在hmemcpy,strcpy等运行时库函数上下断点,通过分析其中的字符串来窥视程序的内部运行。对于edocguard,虽然不是密码的处理,但是内存解密的部分就是使用的memcpy,所以需要重新编写这些运行时库,这个可以从VC或其他编译器的运行时库中的代码改写获得。

需要修改的是vc6_encry_lib,clinetfile里面,hook dll里面的readfile,驱动里的解密。

4、花指令的添加

用花指令来对付静态汇编是很有效的,这会使解密者无法一眼看到全部指令,杜绝了先把程序打印下来再慢慢分析的做法。

一条指令的长度是不等长的,假使有一条指令为 3 字节长,从它的第二个字节开始反汇编,会看到一条面目全非的指令,‘花指令’就是在指令流中插入很多‘垃圾’,使静态反汇编无法进行。

5、干扰代码的添加

在关键部位添加jmp nop cmp 等跳转指令,比较指令以及一些没返回的循环等。插入这些大量无用的运算以误导解密者,防止静态反汇编,增加破解者动态汇编时难度。

到处贴条件转移

没有循环,只是跳转,作为有条件的路障,这样,没有简单的反向操作可以执行。

6、API函数的不规则调用

在软件中对于API的调用不采用直接调用API的方法,因为这样破解者很容易了解到软件所调用的API,进而了解到软件的工作流程。可以采用由DLL的输出表来定位API的函数地址的方法。

对于调试器来说,在对API设置断点时,是在API函数地址上添加一个INT 3指令。所以在调用API时,把API的前几个代码指令复制到调用处,执行前几个代码指令,然后跳转到API函数中。

这样调试器对于API断点的监视是无效的。

7、接口与字符串

DLL,COM不使用有意义的函数接口.不采用一目了然的名字来命名函数和文件,如openfile( )、setpermisson等。

所有可能被破解者利用的字符串都不以明文形式直接存放在可执行文件中,采用加密的形式,在需要时进行解密。

尽可能少地给用户提示信息以防解密者直接了解软件的流程。比如,当检测到破解企图之后,不要立即给用户提示信息,而是在系统的某个地方做一个记号,随机地过一段时间后使软件停止工作,或者装作正常工作但实际上却在所处理的数据中加入了一些垃圾。

8、输入表输出表拦截的检测

定时检测软件各个模块的输入输出表是否一致,输入表、输出表中的函数地址是否处于对应模块的内存区域中,防止破解者采用HOOK API 的方法对软件进程破解操作。

9、加壳

软件最终发行之前将可执行程序进行加壳/压缩,使得解密者无法直接修改程序。如果采用现成的加壳工具,最好不选择流行的工具,因为这些工具已被广泛深入地加以研究,有了通用的脱壳/解压办法。另外,采用两种以上的不同的工具来对程序进行加壳/压缩,并尽可能地利用这些工具提供的反跟踪特性。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有