iOS逆向,Hook,Makeblock,Arduino机器人视
2017-02-27 本文已影响399人
天才小L
最近在玩积木机器人,很遗憾该设备没有摄像头,那么我有一个多余的手机,自己实现一下吧。
IMG_0079.JPG在原App上加入了一个视频窗口:
IMG_0080.JPG
最终效果:
Untitled.gif
实现思路:
1.两台设备建立视频通信;
2.注入视频动态库到 Makeblock APP;
3.前置手机发起视频请求。
源码:
https://github.com/bojy123/MakeBlockHook
实现步骤:
1.下载Makeblock,在越狱设备砸壳;
2.利用class-dump导头:
屏幕快照 2017-01-30 下午4.11.03.png我们直接去找AppDelegate,在启动时候初始化必要方法,并将视频窗口加载到window层上。
3.开发Hook使用的dylib:
这里使用环信SDK进行视频通讯,需要Hook只有application方法,其余都是环信SDK的使用。
CHDeclareClass(AppDelegate);
CHMethod2(BOOL, AppDelegate, application, id, arg1, didFinishLaunchingWithOptions, id, arg2) {
BOOL value = CHSuper2(AppDelegate, application, arg1, didFinishLaunchingWithOptions, arg2);
// 获取属性,可以在keyWindow上加载视图
Ivar ivar = class_getInstanceVariable([self class], "_window");
UIWindow *keyWindow = object_getIvar(self, ivar);
// *****初始化环信SDK*****
return value;
}
__attribute__((constructor)) static void entry() {
CHLoadLateClass(AppDelegate);
CHHook2(AppDelegate, application, didFinishLaunchingWithOptions);
}
4.利用yololib注入dylib到Makeblock app中:
./yololib [被插入dylib的二进制文件] [要插入的dylib]