欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS代码混淆总结

程序员文章站 2022-08-09 18:11:55
ios代码混淆总结 做代码混淆需要六大步骤 1:首先你要创建一个工程吧 2:然后打开你的终端 输入cd 然后把你的工程拖进去 回车 3:然后 打入一下命令: touch confuse.sh 然后回...

ios代码混淆总结

做代码混淆需要六大步骤

1:首先你要创建一个工程吧

2:然后打开你的终端 输入cd 然后把你的工程拖进去 回车

3:然后 打入一下命令: touch confuse.sh 然后回车

4:之后再输入: touch func.list 回车 就行

5:这时候打开你的工程 你会发现一个confuse.sh 和一个func.list文件 这时候点击addfile进去 急着 要在根目录下addfile

6:之后点击confuse.sh文件 把下面这段脚本写入

  1. #!/usr/bin/envbash
  2. tablename=symbolssymbol_db_file="symbols"
  3. string_symbol_file="func.list"head_file="$project_dir/$project_name/codeobfuscation.h"
  4. exportlc_ctype=c
  5. #维护方便日后作排重createtable()
  6. {echo"createtable$tablename(srctext,destext);"|sqlite3$symbol_db_file
  7. }
  8. insertvalue(){
  9. echo"insertinto$tablenamevalues('$1','$2');"|sqlite3$symbol_db_file}
  10. query()
  11. {echo"select*from$tablenamewheresrc='$1';"|sqlite3$symbol_db_file
  12. }
  13. ramdomstring(){
  14. opensslrand-base6464|tr-cd'a-za-z'|head-c16}
  15. rm-f$symbol_db_file
  16. rm-f$head_filecreatetable
  17. touch$head_file
  18. echo'#ifndefdemo_codeobfuscation_h#definedemo_codeobfuscation_h'>>$head_file
  19. echo"//confusestringat`date`">>$head_filecat"$string_symbol_file"|whileread-raline;do
  20. if[[!-z"$line"]];thenramdom=`ramdomstring`
  21. echo$line$ramdominsertvalue$line$ramdom
  22. echo"#define$line$ramdom">>$head_filefi
  23. doneecho"#endif">>$head_file
  24.  
  25. sqlite3$symbol_db_file.dump

    之后导入pch文件 别告诉我你不知道怎么创建pch文件。。。

    然后在pch文件中把这段复制过去

    #ifdef __objc__  
        #import   
        #import   
        //添加混淆作用的头文件(这个文件名是脚本confuse.sh中定义的)  
        #import "codeobfuscation.h"  
    #endif

    然后编译 你会发现 报错了 这很正常 别慌

    然后进入工程的 target build phase
    点击加号 添加 run script

    然后输入以下代码

    $project_dir/confuse.sh

    然后在打开你的终端工具 还是cd 然后把工程文件拖进来 回车

    紧接着输入一下命令:chmod 755 confuse.sh 最后回车就行了

    这时候你在编译 就成功了

    恩 接下来在你的viewcontroller中的.h随便下个方法

    -(void)name;

    然后在func.list 写入 name 即可 然后编译

    iOS代码混淆总结

    会看到name已经变成了 yynb什么的一堆乱码 这样就好了 对了还有一点 最后别忘了 在bulid setting中 搜索prefix heade 然后把路径添加了

    有的时候可能记不住完整的路径“$(srcroot)/xxx/xxx.pch",很简单的方法,就是拖拽,双击打开prefix heade之后,弹出了一个选项框,选择对应的pch文件之后,直接拖进去,就行了! 大工搞成。