利用字符替换进行混淆编译--参考念茜大神的杰作

参考念茜大神,因为做的过程中遇到点坑,所以翻新出来写一遍,当作巩固


混淆的方法

方法名混淆其实就是字符串替换,有2个方法可以,一个是#define,一个是利用tops。

利用#define的方法有一个好处,就是可以把混淆结果合并在一个.h中,在工程Prefix.pch的最前面#import这个.h。不导入也可以编译、导入则实现混淆。

单段的selector,如func: ,可以通过#define func 来实现字符串替换。

多段的selector,如a:b:c: ,可以通过分别#define a 、b、c 来实现字符串替换。

我的混淆工具


我写了个简易的混淆脚本,主要思路是把敏感方法名集中写在一个名叫func.h的文件中,逐一#define成随机字符,追加写入.h。

脚本如下:(念茜大神是用func.list存需要改的字符,小的不才 实在创建不出.list文件 故用func.h代替)

  1. #!/usr/bin/env bash  
  2.   
  3. TABLENAME=symbols  
  4. SYMBOL_DB_FILE="symbols"  
  5. STRING_SYMBOL_FILE="func.h"  
  6. HEAD_FILE="$PROJECT_DIR/$PROJECT_NAME/codeObfuscation.h"  
  7. export LC_CTYPE=C  
  8.   
  9. #维护数据库方便日后作排重  
  10. createTable()  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值