随着业务发展 安全攻防这块也需要作了解,避免灰产薅羊毛。要想研究怎么弄盾 首先要去研究矛。
先介绍我用到的技术
- monkeydev 基本这个就是全套服务了,初级逆向开发者用这个足已
- class dump 对砸壳后的app进行恢复头文件 方便我们了解。 (monkey dev 已集成)
- yoyolib 将动态库链接至app (monkey dev 已集成)
- pp助手 手头没有越狱机 无法砸壳,所以就用pp上的砸壳后的IPA 。
- hook工具 CaptainHook fishhook
Monkeydev
记得一定要看wiki 新手将wiki看个几遍就行了。
class-dump
这个安装之后需要将bin文件一道 /usr/bin or /usr/local/bin 如果提示无权限还需要给这个文件权限。
先简单介绍下CaptainHook
CHDeclareClass() //申明需要的类
CHOptimizedMethod()//需要hook的函数 参数有函数的类型 返回值
{
CHSuper2()调用原来的方法。
}
CHConstructor({
@autoreleasepool{
CHLoadLateClass() 加载这个类 执行hooke
CHHook1() 需要hook的函数
}
})
其实你把monkey整个wiki 看过一遍基本能初步入门逆向。
这里介绍几个小技巧。
- class-dump 之后的头文件分析出自己需要的函数 当我们需要调用宿主的类时 我们可以自己申明一个头文件,包含我们需要的类 以及其方法
@interface MMTableViewInfo : NSObject
- (void)insertSection:(id)sec At:(int)index;
- (UITableView *)getTableView;
@end
这样我们就有了代码提示。没必要去用runtime
- PP助手上一定要选 越狱包
- 在工程的buildSeting里搜 User-Defined ,如果搜不到 就搜 monkey ,会有几个选项让你选择。我们将所有的都设置为yes 这时候 monkeydev 会帮你classdump 已经做符号表恢复。
- 介绍个调试技巧, 自己看。
简单来说 在lldb‘下获取一个类所有函数的地址的方法, [fuckClass _shortMethodDescription]。
然后用b 0xfffffffff 就可以设置断点拉 - 基本这时候你就可以去使用了啊 😁