iOS梦工厂

iCocos——不战胜自己,何以改变未来!

逆向篇-反编译和防反编译

| Comments

关于反编译和防止反编译

反编译

  • 内购破解

    • iOS应用需防反编译风险之一:插件法(仅越狱)、iTools工具替换文件法(常见为存档破解)、八门神器修改
  • 网络安全风险

    • iOS应用需防反编译风险之二:截获网络请求,破解通信协议并模拟客户端登录,伪造用户行为,对用户数据造成危害
  • 应用程序函数PATCH破解

    • iOS应用需防反编译风险之三:利用FLEX 补丁软件通过派遣返回值来对应用进行patch破解
  • 源代码安全风险

    • iOS应用需防反编译风险之四:通过使用ida等反汇编工具对ipa进行逆向汇编代码,导致核心代码逻辑泄漏与被修改,影响应用安全
  • 面对这些iOS应用存在的风险,iOS应用如何防止被反编译,下面看下iOS应用加密技术

iOS应用加密防反编译技术

  • 本地数据加密

    • iOS应用防反编译加密技术之一:对NSUserDefaults,sqlite存储文件数据加密,保护帐号和关键信息
  • URL编码加密

    • iOS应用防反编译加密技术之二:对程序中出现的URL进行编码加密,防止URL被静态分析
  • 网络传输数据加密

    • iOS应用防反编译加密技术之三:对客户端传输数据提供加密方案,有效防止通过网络接口的拦截获取数据
  • 方法体,方法名高级混淆

    • iOS应用防反编译加密技术之四:对应用程序的方法名和方法体进行混淆,保证源码被逆向后无法解析代码
  • 程序结构混排加密

    • iOS应用防反编译加密技术之五:对应用程序逻辑结构进行打乱混排,保证源码可读性降到最低

下面是iOS应用加密防反编译前后对比

iOS应用防反编译总结

  • 通过以上研究,iOS应用开发者必须要注意iOS应用反编译技术研究了,不要让iOS应用重蹈Android应用的覆辙,iOS应用防反编译!

  • 反编译的流程,就是虚拟一个执行环境,看程序执行了那些指令,翻译成相应的语句一般的流程是先把程序调入到数据段, 虚拟运行环境,一般这分配文件头部,从纪录指令程序数据段,载入到虚拟环境中,纪录指令,遇到跳转指令,压入栈,形成树结构(看数据结构),遍历每个节点 的指令。形成完整程序



微信号:

clpaial10201119(Q Q:2211523682)

微博WB:

http://weibo.com/u/3288975567?is_hot=1

gitHub:

https://github.com/al1020119

博客

http://al1020119.github.io/


Comments