最近搞了个autobot的行车记录仪
全新库存,看看有啥玩法
结果iOS app直接好用,但是Android的添加不了设备
怕google出来的apk插毒
随手搞个patch吧,
先凑活用,

正好还fixed了 无限crash的bug,极光推送的问题,

直接上代码:

setImmediate(function(){ //防止超时
    console.log("[*] Staring script");

    Java.perform(function(){ 
        var jpush = Java.use('cn.jpush.android.service.k');
        jpush.run.implementation = function () {

        };

        // var http = Java.use('com.vgoapp.autobot.d.a');
        // http.b.overload("java.lang.String","com.a.a.a.i","com.a.a.a.f").implementation = function(str,iVar,fVar){

        //     console.log(str);
        //     var array = str.split('/');
        //     //var url = array[0]+'//autobot-1p.api.zhis.ltd';
        //     var url = 'https://autobot-1p.api.zhis.ltd';
        //     for(var i=3; i<array.length; ++i){
        //         url = url+'/'+array[i];
        //     }
        //     console.log(url);
        //     this.b(url,iVar,fVar);
        // };

        var guide = Java.use('com.vgoapp.autobot.view.setting.SetAutoBotCameraGuideActivity');
        guide.a.overload("java.lang.String","boolean").implementation = function(str,z){
            console.log(str);
            this.a(str,z);
        };

        var setting = Java.use('com.vgoapp.autobot.view.setting.u');
        setting.a.overload("java.lang.Throwable", "java.lang.String").implementation = function(th,str){
            console.log(str);
            this.a('{"SUCCESS":true}');
        };

        var magic = Java.use('com.vgoapp.autobot.view.setting.aq');
        magic.a.overload("java.lang.Throwable", "java.lang.String").implementation = function(th,str){
            this.a('{"SUCCESS":true}');
        };
    });
})

如果你想抓原来的数据上传,

或者 实现自己的server,可以把注释打开,

改下url的地址就行,

反正他现在server挂了 也不怕数据被上传上去,

可以改成127,这样app还能响应快点。

o对了,官网现在还能下载:http://autobot.vgoapp.com/appdownload.cfm

http://autobot.vgoapp.com/server/apk/AutoBot_4.5.apk

要注意,先添加一下magic,成功之后再去添加eye+magic那个选项,

要不先加eye+magic会提示成功,但是在list显示不出来magic设备,而且是再也添加不了magic。。。。。

我没仔细看具体啥问题,

因为我一开始是用注释掉的方法实现的,直接mock了添加设备的接口,返回假数据,

他app是可以直接添加eye+magic成功的。

后来觉得 让别人用我mock的数据 也有我去插毒的可能,还是整个完全自己可控的方式吧,





免root apk制作方式:

参见:https://lief.quarkslab.com/doc/stable/tutorials/09_frida_lief.html

大概步骤

1)下https://ibotpeaches.github.io/Apktool/

下https://github.com/lief-project/LIEF

下https://github.com/frida/frida/releases的frida-gadget-14.2.14-android-arm.so.xz

armeabi就行,因为autobot这货只有这个架构的lib

2)解包

apktool d AutoBot_4.5.apk -o autobot.out

解包之后,用lief给libjpush180.so注入libgadget.so

python inject.py

import lief

libnative = lief.parse("libjpush180.so")
libnative.add_library("libgadget.so") # Injection!
libnative.write("libjpush180.so")

把libgadget.config.so

{
  "interaction": {
    "type": "script",
    "path": "/data/local/tmp/myscript-autobot.js",
    "on_change": "reload"
  }
}

和frida-gadget-14.2.14-android-arm.so 改名成libgadget.so 一起放到解包的lib/armeabi/目录下,

3)重新打包

apktool b autobot.out -o autobot-frida.apk

4)重新签名

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore gplay-key0-123456.jks autobot-frida.apk key0

5)把 js脚本push到设备,把apk安装

adb push AutoBot_4.5_source_from_JADX/script.js /data/local/tmp/myscript-autobot.js

adb install autobot-frida.apk