Light紫星 发表于 2023-8-12 14:20

某安卓平台3d绘图工具的简单逆向

如题,今日朋友推荐了一款名为 Nomad Sculpt 的安卓平台的3d绘图工具,
在play商店下载后发现需要内购才能使用部分功能,软件内截图如下:



于是拖入jadx,尝试搜索相关字符串,但是没有搜到,不要紧,看一下assets目录,里面有个locales目录,下面有语言文件,搜索购买完整版本



发现 buyFull 关键字 , 然后jadx 搜索 buyFull,发现找不到任何信息,但是呢,用010editor搜索全部文件,找到libnomad.so内部有相关信息,于是把这个文件拖入ida

然后在ida中搜索buyFull 字符串,定位到_ZN7Version14buyFullVersionEv函数


看一下这个函数内容,好像是又反射回到了java层,好,继续跟回java层。他反射的参数应该是函数id,但是methodid我们也不知道,不过这个类也不长,于是挨个看看
发现如下代码

public static void android_purchase() {
      gAppActivity.runOnUiThread(new Runnable() { // from class: com.stephaneginier.nomad.AppActivity.11
            @Override // java.lang.Runnable
            public void run() {
                AppActivity.gAppActivity._billing.purchase();
            }
      });
    }

这个应该就是支付相关的操作了

进入查看




这时候,注意看,我们发现了一个AppLib.onFullVersion(); 函数 ,这个函数看起来是支付成功的时候调用的,于是进ida搜索这个函数


进去看了一下,好像很简单的一个函数,估计这几个数据就是标记是否付费的了

所以现在,只要在软件启动之后调用一下 AppLib.onFullVersion() 函数,应该就可以了

好,现在打开mt管理器,进入 AppActivity 的onCreate 函数,找到最后一行,写入 invoke-static       {}, Lcom/stephaneginier/nomad/AppLib;->onFullVersion()V

然后关闭,保存,重新安装软件测试。



如图,功能完美,只是有时候启动的时候会弹出一个支付结果错误的提示,问题不大,应该是解析不了支付结果报的错。

至此,完美,收工。

本帖不提供任何成品,如有侵权,请联系删帖处理。



Light紫星 发表于 2023-8-12 15:36

dongxi 发表于 2023-8-12 15:27
这是用啥开发的软件

应该是用kotlin加上安卓c++原生开发的

zah1021 发表于 2024-9-18 16:07

大家好,在此收集某阅电子书自用谢谢
有效期截止到2024年9月28日16:06,麻烦在此之前点击以下链接将文件发送给我,支持发送任意格式的文件,感谢~
链接:https://pan.baidu.com/disk/main#/transfer/send?surl=AD4AAAAAABKrJQ
来自:zah

吴可一 发表于 2023-8-12 14:42

哇   好厉害    有用

zhang7069 发表于 2023-8-12 14:45

高手,感谢楼主大神热心分享 {:1_893:}

dzdzdzd 发表于 2023-8-12 14:54

学习学习 666

月黑风高999 发表于 2023-8-12 15:01

学习一下楼主的思路,谢谢分享

sanjintianliang 发表于 2023-8-12 15:20

谢谢分享

dongxi 发表于 2023-8-12 15:27

这是用啥开发的软件

hmzhushou 发表于 2023-8-12 15:34

shaunkelly 发表于 2023-8-12 16:05

看上去不错哦?一会试试
页: [1] 2 3 4 5
查看完整版本: 某安卓平台3d绘图工具的简单逆向