V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Cheez
V2EX  ›  问与答

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

  •  
  •   Cheez · 2018-07-24 17:32:12 +08:00 · 2661 次点击
    这是一个创建于 2325 天前的主题,其中的信息可能已经有所发展或是发生改变。

    酷安 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 文件?

    8 条回复    2018-07-25 22:49:59 +08:00
    conanforever22
        1
    conanforever22  
       2018-07-24 18:05:58 +08:00
    之前用过一个工具 -- swig, 可以根据 C/C++接口生成 Python 可以直接调的接口文件, 这里是官网给出的示例 http://www.swig.org/tutorial.html, 不知道有没有用
    Cheez
        2
    Cheez  
    OP
       2018-07-24 18:33:42 +08:00 via Android
    @conanforever22 是可以调用 linux 平台的 so 的吗
    yukiww233
        3
    yukiww233  
       2018-07-24 18:35:36 +08:00
    看了下传入的 uuid 是 android_id 或随机 uuid,所以返回值最多是符合校验规则
    所以只要传固定值或者生成一个满足校验条件的字符串就行
    Cheez
        4
    Cheez  
    OP
       2018-07-24 21:42:02 +08:00 via Android
    @yukiww233 大佬啊,固定值不行,我试过了,传了之前登过的 token 之后就会显示“请求已过期”
    Cheez
        5
    Cheez  
    OP
       2018-07-24 21:42:29 +08:00 via Android
    @yukiww233 然后要怎么生成啊
    conanforever22
        6
    conanforever22  
       2018-07-25 07:41:19 +08:00
    @Cheez 对, 但是 so 的命名有一定的规则, 比如 import module.py, 那个 so 对应的名字要是_module.so, 具体规则你看下那个连接里 C 的例子
    yukiww233
        7
    yukiww233  
       2018-07-25 09:13:32 +08:00
    @Cheez #4 那应该是加了时间戳吧,参数有 context 应该还顺便校验了签名,python 调用也不现实,还是想办法逆向 so 吧
    Cheez
        8
    Cheez  
    OP
       2018-07-25 22:49:59 +08:00 via Android
    挽尊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6004 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 02:11 · PVG 10:11 · LAX 18:11 · JFK 21:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.