使用 LLVM Pass 实现字符串加密 (一)


风晓
风晓 2023-12-31 11:19:04 53658
分类专栏: 资讯

这个项目可以作为我看了这么久 LLVM 的 Docs 的一个小总结吧。这个项目主要就是给函数使用的常量字符串进行加密,在程序被静态分析的时候干扰分析。当然找到思路后,这个混淆还是很容易解开的。

吐槽下,网上的文章质量参差不齐,写的让人不知所云的,真的恐怖。所以还是面向 Stackoverflow 和官方文档编程吧...

为了写 LLVM Pass ,首先得看看 LLVM Programmers' Manual,里面讲了许多代码样例,API 讲解和类的层次结构。当然这只是基础,具体的使用得看使用 doxygen 生成的文档。

当然也得对 LLVM IR 也得有一定了解 llvm.org/docs/LangRef.h

Pass 思路概述

首先是找到字符串,其次是找到用这个字符串的函数,在这个函数被调用前,先调用解密函数进行解密。最后加密原本字符串。

开发环境准备

编译环境请参考上一篇文章,只是写个 Pass 而已,不要再从整个 LLVM 项目开始编译了好吗...

这里使用的是 VSCode + WSL 搭建开发环境,在项目文件夹的 ".vscode/c_cpp_properties.json" 加上对应的 "includePath" 就有智能提示了。

{
    "includePath": [
        "${workspaceFolder}/**",
        "/usr/include/llvm-8",
        "/usr/include/llvm-c-8"
    ]
}

由于使用 CMake 来管理编译依赖,所以给 VSCode 加上 CMake 插件,可以实现小部分 CMake GUI 的功能。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=33220
赞同 0
评论 0 条
风晓L1
粉丝 1 发表 522 + 关注 私信
上周热门
WPS City Talk · 校招西安站来了!  3767
服贸会|范渊荣获年度创新领军人物!王欣分享安恒信息“AI+安全”探索  3693
有在找工作的IT人吗?  3655
字节跳动“安全范儿”高校挑战赛来袭!三大赛道,赢 80 万专项基金!  3615
阿B秋招线下宣讲行程来啦,速速报名!  3609
字节跳动校招 | 电商业务 2025 校园招聘进行中!五大职类热招,等你来投!  3601
麒麟天御安全域管平台升级!为企业管理保驾护航  3585
烽火通信2025届校园招聘宣讲行程发布!!  3421
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  3382
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  3356
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
如何玩转信创开放社区—从小白进阶到专家 15
信创开放社区邀请他人注册的具体步骤如下 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!