您的位置:首页 > 其它

dubsmash音乐素材获取

2015-08-27 11:48 288 查看
数据采用https/aes加密传输,给分析带来不小麻烦,最后采用root客户端解决:

int jsoncnt=0;
String lang="";
public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
//        XposedBridge.log("lzf Loaded app? " + lpparam.packageName);
if (!lpparam.packageName.contains("com.mobilemotion.dubsmash"))
return;

XposedBridge.log("lzf Loaded app: " + lpparam.packageName);

findAndHookMethod("com.android.volley.Request", lpparam.classLoader, "getUrl",
new XC_MethodHook() {
@Override
protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
String ret = (String) param.getResult();
//                                Log.i("lzf request:", param.thisObject.toString());
Log.i("lzf url:", (String) ret);
}
});

XposedHelpers.findAndHookConstructor(Class.forName("org.json.JSONObject"), String.class,
new XC_MethodHook() {
@Override
protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
saveJson((String) param.args[0]);
//Log.i("lzf json:", (String) param.args[0]);
}
});
findAndHookMethod("com.mobilemotion.dubsmash.requests.DiscoverRequest", lpparam.classLoader, "setLanguages", String.class,
new XC_MethodHook() {
@Override
protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
String langjson = (String) param.args[0];
if(langjson==null) return;
String [] lans=langjson.split("\"");
if(lans.length<3) return;
lang = lans[3];

}
});

XposedHelpers.findAndHookConstructor(Class.forName("org.json.JSONArray"), String.class,
new XC_MethodHook() {
@Override
protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
saveJson((String)param.args[0]);
//Log.i("lzf json:", (String)param.args[0]);
}
});
}

private void saveJson(String arg) {
if(arg==null) return;
if(!arg.startsWith("{\"creator\"") && !arg.startsWith("{\"results\"") &&
!arg.startsWith("[{\"type\"") && !arg.startsWith("{\"page\"") && !arg.startsWith("{\"paginate_by\"")
) {
Log.i("lzf", "ignore json:"+arg);
return;
}

try {
File basedir = new File("/sdcard/dubsmash/"+lang);
if(!basedir.exists())
{
basedir.mkdirs();
}
File sf = new File(basedir, String.format("%05d", jsoncnt)+".json");
OutputStream ostream = new FileOutputStream(sf);
OutputStreamWriter osw = new OutputStreamWriter(ostream);
osw.write(arg, 0, arg.length());
osw.flush();
osw.close();
ostream.close();
jsoncnt+=1;
} catch (Exception e) {
e.printStackTrace();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: