kin9-0rz / dss Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
1、静态内部类不会持有外部类的隐式引用,不会影响到GC对于外部类的回收。
2、这个线程的本身与DSS服务没太多关系。
3、在解密完后,需要保证DSS服务内存完全释放 - #1 。
class TaskThread extends Thread {
public void run() {
dss("/data/local/od-targets.json");
PropertyUtil.set(PROP_IS_FINISH, "Yes");
}
}
6952 12-22 16:07:23.731 W 15206 dalvikvm Exception Ljava/lang/RuntimeException; thrown while initializing Lcom/uerylbesb/ryhdrzgcio/xgtRtRawcet;
6953 12-22 16:07:23.731 W 15206 dalvikvm threadid=14: thread exiting with uncaught exception (group=0x41654ce0)
6954 12-22 16:07:23.731 E 15206 AndroidRuntime FATAL EXCEPTION: Thread-3217
6955 12-22 16:07:23.731 E 15206 AndroidRuntime Process: me.mikusjelly.dss, PID: 15206
6956 12-22 16:07:23.731 E 15206 AndroidRuntime java.lang.ExceptionInInitializerError
6957 12-22 16:07:23.731 E 15206 AndroidRuntime at java.lang.Class.classForName(Native Method)
6958 12-22 16:07:23.731 E 15206 AndroidRuntime at java.lang.Class.forName(Class.java:251)
6959 12-22 16:07:23.731 E 15206 AndroidRuntime at me.mikusjelly.dss.dl.PluginManager.loadClass(PluginManager.java:163)
6960 12-22 16:07:23.731 E 15206 AndroidRuntime at me.mikusjelly.dss.dl.PluginManager.invoke(PluginManager.java:206)
6961 12-22 16:07:23.731 E 15206 AndroidRuntime at me.mikusjelly.dss.dl.PluginManager.invokeTarget(PluginManager.java:188)
6962 12-22 16:07:23.731 E 15206 AndroidRuntime at me.mikusjelly.dss.DSService.dss(DSService.java:164)
6963 12-22 16:07:23.731 E 15206 AndroidRuntime at me.mikusjelly.dss.DSService.access$000(DSService.java:60)
6964 12-22 16:07:23.731 E 15206 AndroidRuntime at me.mikusjelly.dss.DSService$TaskThread.run(DSService.java:98)
6965 12-22 16:07:23.731 E 15206 AndroidRuntime Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
6966 12-22 16:07:23.731 E 15206 AndroidRuntime at android.os.Handler.<init>(Handler.java:200)
6967 12-22 16:07:23.731 E 15206 AndroidRuntime at android.os.Handler.<init>(Handler.java:114)
6968 12-22 16:07:23.731 E 15206 AndroidRuntime at com.uerylbesb.ryhdrzgcio.xgtRtRawcet.<clinit>(:38)
6969 12-22 16:07:23.731 E 15206 AndroidRuntime ... 8 more
6970 12-22 16:07:23.741 W 605 ActivityManager Force finishing activity me.mikusjelly.dss/.MainActivity
目前与dexsim的通信方式是:
通过getprop、setprop,修改特定值来判断是否解密成功,但这仅仅在手机上可行,在模拟器上不可行。
这种方式DSS需要su,然而,模拟器默认su其他程序不能使用的,只有自身才能使用。
所以,需要考虑其他通信方式。
I/DEBUG ( 192): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 192): Build fingerprint: 'Xiaomi/aries/aries:4.4.2/KOT49H/937116:user/release-keys'
I/DEBUG ( 192): Revision: '0'
I/DEBUG ( 192): pid: 16964, tid: 16968, name: GC >>> me.mikusjelly.dss <<<
I/DEBUG ( 192): signal 7 (SIGBUS), code 2 (BUS_ADRERR), fault addr 75b4159d
I/DEBUG ( 192): r0 75b4159d r1 415b4498 r2 41d34670 r3 00000022
I/DEBUG ( 192): r4 41d34670 r5 41d34670 r6 00000001 r7 415b4498
I/DEBUG ( 192): r8 80000000 r9 4150fa4c sl 415b4498 fp 41d34700
I/DEBUG ( 192): ip 00000000 sp 713d6cb0 lr 4150f7a8 pc 4150f990 cpsr 200f0010
……
I/DEBUG ( 192):
I/DEBUG ( 192): memory map around fault addr 75b4159d:
I/DEBUG ( 192): 75b22000-75b23000 r-- /data/data/me.mikusjelly.dss/app_dex/tmp.dex (deleted)
I/DEBUG ( 192): 75b23000-75b4a000 r-- /data/data/me.mikusjelly.dss/app_dex/tmp.dex (deleted)
I/DEBUG ( 192): 75b4a000-75b4d000 rw- /dev/ashmem/dalvik-aux-structure (deleted)
解密A样本后,如果继续解密B样本,DSS则会崩溃。
B推送的APK会覆盖掉A,而之前加载的A在内存中。
之前加载过A被deleted掉了,而且被替换成同名文件的B,导致了异常。
解密完毕后,考虑 context.stopService(new Intent(context, DSService.class));
E/AndroidRuntime(21142): Process: me.mikusjelly.dss, PID: 21142
E/AndroidRuntime(21142): com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected an int but was STRING at line 1 column 2 path $[0]
E/AndroidRuntime(21142): at com.google.gson.Gson.fromJson(Gson.java:873)
E/AndroidRuntime(21142): at com.google.gson.Gson.fromJson(Gson.java:826)
E/AndroidRuntime(21142): at com.google.gson.Gson.fromJson(Gson.java:775)
E/AndroidRuntime(21142): at com.google.gson.Gson.fromJson(Gson.java:747)
E/AndroidRuntime(21142): at me.mikusjelly.dss.DSService.buildTarget(DSService.java:292)
E/AndroidRuntime(21142): at me.mikusjelly.dss.DSService.loadTargetsFromFile(DSService.java:209)
E/AndroidRuntime(21142): at me.mikusjelly.dss.DSService.dss(DSService.java:154)
E/AndroidRuntime(21142): at me.mikusjelly.dss.DSService.access$000(DSService.java:60)
E/AndroidRuntime(21142): at me.mikusjelly.dss.DSService$TaskThread.run(DSService.java:98)
E/AndroidRuntime(21142): Caused by: java.lang.IllegalStateException: Expected an int but was STRING at line 1 column 2 path $[0]
E/AndroidRuntime(21142): at com.google.gson.stream.JsonReader.nextInt(JsonReader.java:1201)
E/AndroidRuntime(21142): at com.google.gson.internal.bind.TypeAdapters$5.read(TypeAdapters.java:202)
E/AndroidRuntime(21142): at com.google.gson.internal.bind.TypeAdapters$5.read(TypeAdapters.java:194)
E/AndroidRuntime(21142): at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
E/AndroidRuntime(21142): at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:72)
E/AndroidRuntime(21142): at com.google.gson.Gson.fromJson(Gson.java:861)
E/AndroidRuntime(21142): ... 8 more
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.