iosre Blog

iOS 逆向开发,熟悉iphone/tweak、iphone/tool、cydia的repo 制作 、cocoapods的Specs repo制作(using-pod-lib-create、private-cocoapods)

How_to_regain_the_trust_of_others

怎样重新获得别人的信任

本期金句 原谅是容易的,而再次信任很困难 对小孩来说,灾难是犯错误;而对于成人来说是“不再受信任” 获取信任的方法 建立特殊信用 建设自己的领导力 保存逻辑一致性 ...

String_encryption

字符串加密,使用clang-c接口将源代码转换成抽象语法树,并对抽象语法树进行遍历和分析,帮助我们分析代码中存在的字符串;进而对其中的字符串进行加密处理,来防止静态分析

前言 libclang: C Interface to Clang details 拿到字符串的开始和结束的位置,然后再进行字符串加密操作 字符串加密 解析字符串的code 导入一些必要的头文件clang-c ...

Static_obfuscation

静态混淆,使用宏进行替换字符串,或者解析mach-o中对应的section进行类名和方法名的替换

前言 本人最终喜欢的马甲包混淆方案是用Hikari,具体的用法看这里 本文的重点是讲解最原始的方法:字符串替换 宏定义,这里有更详细的讲解iOSobfuscation [ios-class-guard:Simple Objective-C obfuscator for Mach-O executa...

HookDetection

反注入:注入检查机制,获取加载的模块名,判断是否都在白名单中;hook 检测:method swizzle、符号表替换、inline hook

前言 针对注入的方式进行反注入,现在先回一下注入的方式有哪些? iOS 中常见的hook方式 hooking-swift-methods Hooking & Executing Code with dlopen & dlsym —Ea...

Dynamic_protection

反调试、反反调试、反注入、hook检测、完整性校验

前言 加解密方法、动态传参的分析就依赖动态调试去分析动态解密之后的内容、方法传递的参数。 动态分析防护 ptrace ,syscall sysctl,dlsym等 反调试AntiDebug. code for antiDebug 阻止调试器附加 ant...

AntiAntiDebug

反反调试:针对ptrace、sysctl、syscall,采用hook函数->判断函数-〉返回结果的流程;hook的方式有越狱环境的hook、非越狱环境的hook以及在lldb的时候采用python脚本自动在目标函数设置条件断点,在断点的回调中改变对应的寄存器。

越狱hook AntiAntiDebugTweak.xm %ctor{ MSHookFunction((void *)MSFindSymbol(NULL,"_ptrace"),(void*)my_ptrace,(void**)&orig_ptrace); MSHookFunction((void *)sysctl,(voi...

How_to_turn_to_others_with_grace

如何优雅地求助

前言 在这一讲中,我要教你,怎样优雅地向别人求助,如果被拒绝,该怎么办。 如何优雅地求助 “优雅地求助”和“乞讨式求助”是有区别的。 前者的 关键词是合作、互惠、交换。 后者的关键词是:绝望、屈尊、操纵。 怎样饱含激情地去做一次“优雅地求助”呢? 首先,我们心理...

How_to_implement_the_function_of_spelling_error_correction

怎样实现拼写纠错的功能?

前言 今天我们通过Google的一道面试题,回顾一下这一周的内容,也复习一下之前的一些内容。这道面试题是这么出的:怎样实现拼写纠错的功能? 在讲解这道题目之前,我还是要强调一下这是一道没有标准答案的开放式问题,只有好的和不好的答案。什么是不好的答案呢?见过比较奇葩的回答是,到Google上搜索一下即可。这些面试者也不想想,他们面试的就是Google公司,没有工程师开发这个功能,哪里来的拼...

Security

安全保护

前言 加固保护方案 数据加密: 网络传输的加密使用二进制协议传输数据 本地存储的加密 静态字符串的加密 反调试\ 注入检测、hook检测、越狱检测、签名检测 iOS-pri...

The_use_of_Frida

通过Frida提高的python接口、注入js调用native的函数、利用Frida提供的各种动态函数拦截功能,实现对class的替换和监控( 这个高级功能是由js的API提供)

I 、Frida 的初级使用:通过Frida提高的python接口获取一些信息 main.py,编写代码增加入口函数 if __name__ == '__main__': try: main() except KeyboardInterrupt: if session: session.detach() sys.exit(...