二进制学习-软件保护技术

本文深入探讨了软件保护技术,包括验证用户合法性、堡垒战术如MD5和RSA的应用、游击战术的多验证函数策略以及如何抵御静态分析。介绍了花指令、SMC技术、信息隐藏和简单的多态变形技术,同时提到了文件完整性检验方法如CRC-32和校验和。
摘要由CSDN通过智能技术生成

0x00.基本概念:

1.    软件保护技术是向合法用户提供完整功能,所以软件保护必然要验证用户合法性,通常采用注册么验证的方式来实现。

2.    通常流程:

a)      用户向软件作者提交用户码name,申请注册。

b)     软件计算出合法的注册码serial=f(name)返回给用户

c)      用户在界面输入正确的name和serial

d)     软件通过验证函数来验证其合法性

0x01.堡垒战术:

1.    MD5:


缺点就是MD5不可逆,所以相应的a一定是一个常数,当获得了一组合法的U,R的时候,就可以追踪到a,b。

 

2.    RSA:

 

0x02.游击战术:

1.   将验证函数F分解成为多个不相同的Fi,然后将这些Fi尽量隐藏到程序中去。

2.   真正的注册码可以通过全部的Fi,而解密者只找到一个或几个Fi就不能对完整的算法求逆。

3.   对解密者来说,游击战术会非常被动,因为并不知道程序当中还隐藏着什么检测程序。

4.   游击战术的缺点在于,每一个验证函数都必须访问注册码,而注册码的源头只有一个,解密者通过跟踪程序并监控注册码所在的内存地址,那么一旦验证函数访问注册码,那么函数就会被泄露。不过也有应对方法,就是不停地转移注册码。

5.  转移注册码:

 (1).   内存拷贝,属于最常规的方法,容易被追踪到。

 (2).   写入注册表或者文件中,然后在另一处代码中再读入到另一个内存地址。会被注册表和文件监视工具识破。

 (3).   一次将注册码拷贝到多个地址。

 (4).   在反复使用同一个函数搬家后,突然使用另一个前半段代码相同后半段不同的函数进行搬家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值