没有什么技术含量,分享出来希望能够方便大家.
友情推荐:
Sublime Text 也不错,主要有很多第三方插件支持.
010 Editor 对二进制文件有比较多的功能
正文:
通过分析,UE主目录下ProtectionPlusDLL.dll为验证功能库,UE主模块通过调用该DLL来实现授权校验,所以我们从这里下手.
从ProtectionPlusDLL.dll的导出函数中可以看到一些函数名已然可以猜到对应的功能.
然后就HOOK几个检测的函数比如"IsActivatedSoftwareKey"等,修改返回值.这里我使用了IDA反汇编导出的函数,这些函数大多都是返回的BOOL型,因此判断是否已注册的相关函数我都返回了1;
然鹅修改后测试发现UE依然提示未注册,而且提示注册码不合法...
既然判断函数已经是返回1了,还会提示不合法,那必然是进行了其他判断,很可能是联网判断.
又扫了下导出表,感觉"CheckStatusAsyncSoftwareKey"就很可疑了.
通过反汇编可知这个函数参数中有回调函数,那自然是不言而喻,盘他
这里本来是应该向回调函数传递一些注册成功之类的信息,但在实际测试中发现直接无视该回调,直接返回1即可.
UE就收不到这个验证回调也就不会再提示非法,看来UE这里是有漏洞的,没有对这里做验证.
最后附上源码和已修改的绿色版.
附:HOOK使用了Detours库,主程序修改了导入表来注入.也可以使用劫持来注入
源码链接:https://pan.baidu.com/s/1lQjOVkn76d1sji5hXKflaQ
提取码:1vfp
绿色版链接:https://pan.baidu.com/s/1BfDzt5--DwLaLmZvNLWKsQ
提取码:fj9l