有黑产进行突破so的加密算法,但是为了更加保护算法,不容易被分析人员看到加密参数在哪,可以增加一下定位难度,用llvm写了个字符串混淆,特此分享思路出来。
⊙1.效果
⊙2.整体思路
⊙3.ndk
-
效果
void
pt
(
char
* info)
{
printf
(
"%sn"
,info);
printf
(
"hello"
);
}
int
main
()
{
pt(
"hello"
);
return
1
;
}
经过加密:
2.总体思路
ollvm中的string混淆存在个问题,在so被加载的时候只要进行so的dump,然后把只读段patch了,然后字符串就明文了,为了应对这种攻击办法,使用字符串使用时被解密,然后使用完之后被加密的方式,这样在攻击者dump的时候,dump不下来了。
没被处理前的llvm bitcode:
处理后的bitcode:
3.ndk
本人开发了一些新的混淆功能,若想试用,可联系作者~
(高仿ks版、mt版花指令,伪vmp加密~~~~) 完结~~~~
原文始发于微信公众号(二进制科学):llvm实现防dump的字符串加密
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论