博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS代码混淆总结
阅读量:2396 次
发布时间:2019-05-10

本文共 1862 字,大约阅读时间需要 6 分钟。

转载自: http://www.2cto.com/kf/201703/611865.html

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文件中把这段复制过去

    1
    2
    3
    4
    5
    6
    #ifdef __OBJC__ 
        
    #
    import
    <uikit uikit.h=
    ""
        
    #
    import
    <foundation foundation.h=
    ""
        
    //添加混淆作用的头文件(这个文件名是脚本confuse.sh中定义的) 
        
    #
    import
    "codeObfuscation.h" 
    #endif</foundation></uikit>

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

    然后进入工程的 target Build Phase

    点击加号 添加 Run Script

    然后输入以下代码

    $PROJECT_DIR/confuse.sh

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

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

    这时候你在编译 就成功了

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

    -(void)name;

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

    \

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

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

你可能感兴趣的文章
Linux文件解压命令汇总(持续更新)
查看>>
HDU 4046 树状数组
查看>>
HDU 4034 图论 Floyd
查看>>
HDU 4027 线段树
查看>>
HDU 4049 状态压缩DP
查看>>
SGU 253 计算几何 判定点是否在凸包内
查看>>
Fedora 16 卸载 ATI 显卡驱动
查看>>
Fedora 16 安装 ATI显卡驱动
查看>>
vim 添加代码补全功能(Omnicppcomplete 添加对STL支持)
查看>>
HDU 4013 图论 树的最小表示
查看>>
Ubunu下moderncv加载moderntimeline
查看>>
Ubuntu 12.04安装Jetty
查看>>
Ubuntu 12.04安装OpenCV
查看>>
K-D树 C++实现
查看>>
搜索引擎的预料库 —— 万恶的爬虫
查看>>
网易工程师 Ruheng 一文教你轻松学会 Git
查看>>
文字与编码的奥秘(下)
查看>>
阿里分布式事务框架 GTS 全解析
查看>>
一个字节的网络漫游故事独白
查看>>
RabbitMQ 消息可靠性、延时队列以及高可用集群
查看>>