开源LLVM打碎控制流图和字符串加密

栏目: 软件资讯 · 发布时间: 5年前

内容简介:字符串加密效果见:下面介绍打碎控制流。

字符串加密效果见: https://bbs.pediy.com/thread-251631.htm

下面介绍打碎控制流。

> > > >

原理

将llvm中的条件br指令替换成一个 call indirectbr 。这个 call 返回的是跳转的目的地址。

处理前:

%7 = icmp eq i32 %6, 2
 br i1 %7, label %8, label %13

处理后:

%8 = icmp eq i32 %7, 2
 %9 = call i8* @brkcfg(i1 %8, i32 0)
 
indirectbr i8* %9, [label %15, label %10]

> > > >

用法:

-mllvm -brkcfg 使能打碎控制流

-mllvm -encstr 使能加密字符串

代码中使用以下注解来对指定函数开关打碎控制流:

__attribute__((annotate("loveida")))

__attribute__((annotate("hateida")))

真值表:

hateida     loveida     default

default Y              N              N

brkcfg  Y              N              Y

在目前的实现中,打碎控制流中的call并没有加密跳转表,因此对抗脚本分析效果不怎么好。等那天闲着无聊再弄吧。

代码较为简短,所以就直接发代码了。本来想发binary的,但是编译一次release太久太占硬盘,就不弄了。感兴趣的自己编译吧。使用的llvm版本是release/8.x。

> > > >

效果:

开源LLVM打碎控制流图和字符串加密 开源LLVM打碎控制流图和字符串加密 开源LLVM打碎控制流图和字符串加密 开源LLVM打碎控制流图和字符串加密

- End -

开源LLVM打碎控制流图和字符串加密

看雪ID: malokch

https://bbs.pediy.com/user-453009.htm   

本文由看雪论坛  malokch  原创

转载请注明来自看雪社区

:warning: 注意

2019 看雪安全开发者峰会门票正在热售中!

长按识别下方 二维码 即可享受  2.5折  优惠!

开源LLVM打碎控制流图和字符串加密

开源LLVM打碎控制流图和字符串加密

公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com

点击下方“阅读原文”,查看更多干货


以上所述就是小编给大家介绍的《开源LLVM打碎控制流图和字符串加密》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

复制互联网之2

复制互联网之2

文飞翔//刘伟 / 清华大学出版社 / 2011-6 / 45.00元

《复制互联网之2:2011年全球最值得模仿的100个网站》从行业的整体发展趋势中,收录了国内外最值得关注的互联网商业模式,为初创网站设计者提供了诸多可供借鉴的最具有启发价值的商业案例。此外,《复制互联网之2:2011年全球最值得模仿的100个网站》对前沿互联网产品的介绍和思考,也值得网站开发人员、产品设计人员及公司管理人员在产品和运营的创新上借鉴与参考。 作者是网易科技频道的编辑,长期致力于......一起来看看 《复制互联网之2》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具