看啥推荐读物
专栏名称: 看雪学苑
致力于移动与安全研究的开发者社区,看雪学院(kanxue.com)官方微信公众帐号。
今天看啥  ›  专栏  ›  看雪学苑

二进制明文字符串加密: 实现原理

看雪学苑  · 公众号  · 互联网安全  · 2023-11-05 17:40
背景这里就不多做解释了,明文字符串暴露就是最好的逆向分析指引。无论是恶意攻击样本还是有一定安全需求的组件,直接暴露程序中的明文字符串会大幅降低外部的分析成本。所以需要在编译出的二进制中隐藏字符串。不过需要明确下字符串加密的实现主要分两种,一种是借助llvm的pass去做的,另外一种是基于编译期模板的形式去做的,这里讨论的是后者。常规的字符串表示代码和16进制如下:printf("conventional...\n");解决明文暴露的问题首先考虑转换下写法,代码和16进制如下:char strArray[] = { 'c', 'o', 'n', 'v', 'e', 'n', 't',    'i', 'o', 'n', 'a', 'l', '.', '.', '.', '\n', '\0' };printf(strArray);这么写似乎和直接写字符串编译后没有区别?但是将字符串转为字符数组表示便于下面的加密逻辑。char strArray[] = { 'c' + 1, 'o' + 1, 'n' + 1, 'v' + 1, 'e' + 1, 'n' + 1, 't' + 1,    'i' + 1, ' ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照