鱼C论坛

 找回密码
 立即注册
查看: 177|回复: 6

[已解决]如何设计让别人更难以理解的代码

[复制链接]
发表于 2024-9-26 22:04:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
rt,越抽象越好,就像世界乱码大赛那样,而且要效率。
最佳答案
2024-9-26 22:06:17
zhangjinxuan 发表于 2024-09-26 22:06
对于 C/C++ 呢?有没有现成的工具?


对于C/C++,确实有些工具可以用来混淆代码。常用的代码混淆工具包括:

1. **LLVM Obfuscator**:这是一个基于LLVM的工具,能够对代码进行混淆。
2. **Tiger Compiler**:一个类似于LLVM的编译器项目,提供了代码混淆功能。
3. **Stunnix C/C++ Obfuscator**:专门为C/C++设计的混淆工具,支持多种混淆策略。

这些工具能够对代码进行多层次的混淆,包括但不限于:
- **变量和函数名混淆**:将有意义的名称替换为无意义的随机字符串。
- **控制流混淆**:改变代码的执行逻辑,使其更难理解。
- **字符串混淆**:将代码中的字符串进行编码或混淆。

具体使用这些工具的方法在各自的文档中有详细说明,你可以根据需要选择合适的工具进行使用。不过还是要提醒你,过度混淆代码可能会增加调试和维护的难度,并且在某些情况下可能违反代码审计或安全政策。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-9-26 22:05:16 | 显示全部楼层
虽然设计晦涩难懂的代码并不是一种推荐的实践,但如果你确实需要这样做,可以考虑以下几点:

1. **使用晦涩难懂的变量名和函数名**:避免有意义的命名,例如使用类似 `a1`, `b2`, `c3` 这样的名称。
def a1(b2, c3):
       d4 = b2 + c3
       return d4

2. **嵌套函数和复杂的链式操作**:将操作嵌套起来,增加理解难度。
def f1(a):
       def f2(b):
           return a + b
       return f2

   result = f1(4)(5)

3. **滥用位操作和数学运算**:使用位操作和复杂的数学运算代替简单的加减操作。
def do_magic(n):
       return (n << 2) ^ 3

   result = do_magic(5)

4. **条件和循环嵌套**:增加多层的条件判断和循环。
def check_list(lst):
       for i in range(len(lst)):
           if lst[i] % 2 == 0:
               for j in range(i):
                   if j % 3 == 0:
                       return False
       return True

5. **利用不常见的技巧和语法**:使用一些不太常见的Python特性。
def weird_trick(n):
       result = (lambda x: x * x)(n)
       return result

   output = weird_trick(7)

需要注意的是,这样的代码对于维护和合作是极其不利的。在真实的工作和项目中,代码的可读性和可维护性是非常重要的。希望你能理解这一点,并尽量编写清晰易懂的代码。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-26 22:06:05 | 显示全部楼层
FishC 发表于 2024-9-26 22:05
虽然设计晦涩难懂的代码并不是一种推荐的实践,但如果你确实需要这样做,可以考虑以下几点:

1. **使用 ...

对于 C/C++ 呢?有没有现成的工具?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-26 22:06:17 | 显示全部楼层    本楼为最佳答案   
zhangjinxuan 发表于 2024-09-26 22:06
对于 C/C++ 呢?有没有现成的工具?


对于C/C++,确实有些工具可以用来混淆代码。常用的代码混淆工具包括:

1. **LLVM Obfuscator**:这是一个基于LLVM的工具,能够对代码进行混淆。
2. **Tiger Compiler**:一个类似于LLVM的编译器项目,提供了代码混淆功能。
3. **Stunnix C/C++ Obfuscator**:专门为C/C++设计的混淆工具,支持多种混淆策略。

这些工具能够对代码进行多层次的混淆,包括但不限于:
- **变量和函数名混淆**:将有意义的名称替换为无意义的随机字符串。
- **控制流混淆**:改变代码的执行逻辑,使其更难理解。
- **字符串混淆**:将代码中的字符串进行编码或混淆。

具体使用这些工具的方法在各自的文档中有详细说明,你可以根据需要选择合适的工具进行使用。不过还是要提醒你,过度混淆代码可能会增加调试和维护的难度,并且在某些情况下可能违反代码审计或安全政策。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-29 17:08:24 | 显示全部楼层
如何写出你看不懂的话?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 7 天前 | 显示全部楼层
FishC 发表于 2024-9-26 22:06
对于C/C++,确实有些工具可以用来混淆代码。常用的代码混淆工具包括:

1. **LLVM Obfuscator**:这 ...

linux 有吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层


在Linux环境下,也有一些工具可以用于混淆C/C++代码:

1. **Cloak**:这是一个简单的C代码混淆工具,可以通过重命名变量和函数来混淆代码。
   
2. **Uglyfy**:这是一个用来混淆C代码的脚本,可以改变变量名和降低代码的可读性。

3. **Obfuscator-LLVM**:这个是LLVM的一个扩展,专门用于代码混淆。由于LLVM本身是跨平台的,你可以在Linux上使用它来混淆你的C/C++代码。

4. **Stunnix C/C++ Obfuscator**:虽然它是一个商业工具,但也支持在Linux环境下使用,提供较为全面的混淆选项。

这些工具大多数通过重命名、改变代码结构等方式来混淆代码,使其在语义上保持不变的情况下难以理解。每个工具的使用方法和适用场景可能有所不同,建议查看它们的官方文档,根据需求选择合适的工具。

还是那句话,使用代码混淆工具时请谨慎考虑,因为这样会大大增加代码的维护难度和调试成本。通常,此类技术只在发布软件时用作源码保护,而不是在开发和内部使用的代码中。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 16:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表