iOS逆向,Hook,Makeblock,Arduino机器人视频

最近在玩积木机器人,很遗憾该设备没有摄像头,那么我有一个多余的手机,自己实现一下吧。

IMG_0079.JPG

在原App上加入了一个视频窗口:


IMG_0080.JPG

最终效果:


Untitled.gif
实现思路:
1.两台设备建立视频通信;
2.注入视频动态库到 Makeblock APP;
3.前置手机发起视频请求。
源码:
https://github.com/bojy123/MakeBlockHook
实现步骤:
1.下载Makeblock,在越狱设备砸壳;
2.利用class-dump导头:
iOS逆向,Hook,Makeblock,Arduino机器人视频_第1张图片
屏幕快照 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]
5.将Makeblock app重签名,安装到手机上;
6.前置手机安装集成环信的app,发起视频,得到最终效果。

你可能感兴趣的:(iOS逆向,Hook,Makeblock,Arduino机器人视频)