1
Le4fun 2017-09-17 14:08:06 +08:00
没太明白 Java 是要 jar 下载放项目里才可以
|
2
TakWolf 2017-09-17 14:14:02 +08:00
android.* 包需要在 Android 环境下才能运行,JavaSE 环境不行。
楼主反编译成功了,需要用 Java 标准库替换 android 的一些组件,保证代码可以运行在 javaSe 环境。 然后才能用 JPype 去调用。 |
3
Marsss OP @TakWolf 意思是,这种 android.*需要另外用 java 标注库来重新写么,那么能不能大概指点一下图片里的那两个函数是起怎么作用,该怎么用 java 标准库来实现呢?
|
4
zengmingyang96 2017-09-17 19:27:29 +08:00
elapsedRealtime 函数返回的是手机自启动以来的毫秒数。
这个时间可能和加密有关 你导入 jar 包没用的,这个方法 JNI 调用的,除非你能搞到动态库 ``` /** * Returns milliseconds since boot, including time spent in sleep. * * @return elapsed milliseconds since boot. */ native public static long elapsedRealtime(); ``` |
5
zengmingyang96 2017-09-17 19:29:00 +08:00
|
6
DouO 2017-09-17 19:39:28 +08:00
`implementation 'com.google.android:android:4.1.1.4'`
|
7
DouO 2017-09-17 19:40:35 +08:00
|
8
tairan2006 2017-09-17 19:41:03 +08:00
把安卓系统库替换掉=,=
|
9
jedihy 2017-09-18 07:09:37 +08:00
```
public static App a() { return b; } ``` 单例? |
10
Marsss OP 谢谢大家的讨论,看大家的回复,我的理解是,想直接复现源码并不是靠谱,网上看了一些资料后,我考虑去琢磨一下 xposed,去 hook 相关函数打印变量,可能会稍微坑少一点。
|
11
yzmm 2017-09-18 10:39:09 +08:00
楼主你看到的代码是被混淆之后的,所以会出现这种无聊的方法,其实就是不下让你看到真实逻辑。你在 AS 里面配置 gradle 把你反编译的 jar 加进来就可以调用了。
|
12
vjnjc 2017-09-18 11:12:44 +08:00
我感觉一个可行的方式是:
用这部分代码嵌在你的 android 的程序里面,然后 server 用推送的方式向 android app 询问加密 string。 假如按照你现在的思路,你需要看懂他的 app,然后把相关 android 的 api 换成 javase 的 api,并且因为你是 server 程序,并没有手机启动时间。。。 |
13
bashbot 2017-09-19 17:09:59 +08:00
Android 的 SDK 中有相关的 jar,你下载 android-sdk 把 jar 加载到项目中就能找到这些包了。
APK 反编译的话,apktool 和 jd-gui 都挺好的。 你需要把加密的代码抠出来,然后把 android 相关的调用替换掉,标准 JRE 中不能运行 android 包 |