Python 怎么调用安卓的.so 文件?_

2018-07-24 17:32:12 +08:00
 Cheez

酷安 app 登录有个参数需要用叫做"a"的 so 库计算得到( https://file.io/S6O1yy)

package com.coolapk.market.util;
import android.content.Context;
public class AuthUtils {
    static {
        System.loadLibrary("a");
    }

    /**
     * @param paramContext Application 上下文
     * @param paramString 一個 UUID
     * @return 用於請求的 Token
     */
    @SuppressWarnings("JniMissingFunction")
    public static native String getAS(Context application, String uuid);
}

用 ida 看了一下,发现以我的水平破解不了,来问一下有没有人能反编译得到算法,或者能直接调用 so 文件?

2553 次点击
所在节点    问与答
8 条回复
conanforever22
2018-07-24 18:05:58 +08:00
之前用过一个工具 -- swig, 可以根据 C/C++接口生成 Python 可以直接调的接口文件, 这里是官网给出的示例 http://www.swig.org/tutorial.html, 不知道有没有用
Cheez
2018-07-24 18:33:42 +08:00
@conanforever22 是可以调用 linux 平台的 so 的吗
yukiww233
2018-07-24 18:35:36 +08:00
看了下传入的 uuid 是 android_id 或随机 uuid,所以返回值最多是符合校验规则
所以只要传固定值或者生成一个满足校验条件的字符串就行
Cheez
2018-07-24 21:42:02 +08:00
@yukiww233 大佬啊,固定值不行,我试过了,传了之前登过的 token 之后就会显示“请求已过期”
Cheez
2018-07-24 21:42:29 +08:00
@yukiww233 然后要怎么生成啊
conanforever22
2018-07-25 07:41:19 +08:00
@Cheez 对, 但是 so 的命名有一定的规则, 比如 import module.py, 那个 so 对应的名字要是_module.so, 具体规则你看下那个连接里 C 的例子
yukiww233
2018-07-25 09:13:32 +08:00
@Cheez #4 那应该是加了时间戳吧,参数有 context 应该还顺便校验了签名,python 调用也不现实,还是想办法逆向 so 吧
Cheez
2018-07-25 22:49:59 +08:00
挽尊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/473758

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX