App逆向百例|03|某游戏app sign分析

简介: App逆向百例|03|某游戏app sign分析
样本:aHR0cHM6Ly93d3cuYWxpeXVuZHJpdmUuY29tL3MvTmgxazNqbjU1WXM=

观前提示:

本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除

0x1 加密位置分析

打开app 发现无法连接服务器 一般认为是证书验证了 随便网上找个hook脚本就行了 或者用justtrustme也行

先抓包找到log-in.html

看post data有password和sign是被加密的


打开java-gui找

全局搜索一下log-in.html

只有一个结果 双击跳转过去

双击进来

能看到password的加密是调用native方法

往下滑可以看到

可以看到是加载了NativeHelper 也就是libNativeHelper.so

这就是password的加密位置了


还有一个sign参数

回到上层界面 找到buildRequestParams

进入super.buildRequestParams方法

进来之后 再次进入super.buildRequestParams

从这里就能看到sign的加密位置了

进入AppNativeHelper.getServerApi方法


0x2 加密逻辑分析

ida打开libNativeHelper.so 先去导出表看看导出方法有没有含有JAVA开头的

没有就需要考虑动态注册了

找到JNI_OnLoad

进入off_1C044

这里就可以看到动态注册的函数名了 本篇文章 我就只以getServerApi作为示例

双击下面的sub_12794进入getServerApi 如果是loc开头的 则需要Edit->Functions->Create function 或者直接按P 创建


进入到sub_12794后就可以开始分析了 同时也可以通过rename和convert to struct

进到sub_125B0

这里我名字已经改好了 可以看到salt是通过取dword_16954来计算写进内存的 最后传入sub_4DF0

进入sub_4DF0 同样我已经改好变量名和有分析注释了

整体流程还是可以直观看出来的 这里的大概意思就是 开内存 写数据

接着就看这俩个方法了

进入sub_4538

熟悉的码表 不懂也可以百度搜一下这几个数值 是md5没错了

进入sub_4564 可以看到全是计算操作

再进入其中的一个sub_45F4

得了 不用继续看了 md5坐实 静态分析就先到此结束 上frida


0x3 hook

上面分析可知 这个so是一个简单的动态注册

需要hook的是sub_4DF0这个方法 写法就是

var libNativeHelper=Module.findBaseAddress("libNativeHelper.so");
var sub_4DF0=libNativeHelper.add(0x4DF0+1);

hook代码网上很多 基本可以照抄学习

从代码可以知

sub_4DF0(env, str, salt);

str是从java传入的 salt是so里面计算的

所以直接console的话是乱码的 需要转换一下

var String=Java.use('java.lang.String')
console.log('str->',Java.cast(args[1],String))
console.log('key->',args[2].readCString())

写好hook代码就该测试一下啦

输出结果

str-> 1643530355352531084076641lXIjMLZ7qXY=123
salt-> ef2vx#sf*^FlklSD*9sdf(m$&qw%d7po

分割一下就是

1643530355 dateline
35253108407664 deviceIdentifier
1 info
lXIjMLZ7qXY= password
123 username

手动拼接 md5加密一下

可以看到 结果一模一样 md5无魔改


完美撒花 感谢各位大佬观看

如有错误 还请海涵

共同进步


[完]

相关文章
|
1天前
|
数据采集 小程序 网络安全
云擎技术---分析工信部APP备案的“传闻”
APP备案并非新事物,自2005年起已有非经营性互联网信息服务备案制度。备案针对的是网站主办者,而非用户,不涉及个人用户网络访问。网络接入服务提供者包括ISP和IDC,不限于三大运营商。通知要求不为未备案网站提供接入,但不影响国外软件使用。个人开发者不能涉及经营性内容,备案审核时长1-20个工作日。境内服务器和国内应用商店需备案,境外则无需。手机厂商不会开启白名单制,仅实行黑名单制。APP备案与民营经济发展壮大意见不冲突,工信部有权颁布相关规定。该政策不存在逐步试探底线情况,所有解读均有法律依据。
32 3
云擎技术---分析工信部APP备案的“传闻”
游戏直播APP平台开发多少钱成本:定制与成品源码差距这么大
开发一款游戏直播APP平台所需的费用是多少?对于计划投身这一领域的投资者来说,首要关心的问题之一就是。本文将探讨两种主要的开发模式——定制开发与成品源码二次开发的成本差异及其优劣势。
|
1天前
|
网络协议 算法 Android开发
安卓逆向 -- 实战某峰窝APP(动态分析)
安卓逆向 -- 实战某峰窝APP(动态分析)
42 4
|
1天前
|
算法
某圈app算法分析
某圈app算法分析
20 0
|
1天前
|
算法 安全 数据安全/隐私保护
某影视APP算法逆向分析
某影视APP算法逆向分析
20 0
|
1天前
|
算法 Java
某江app算法分析
某江app算法分析
17 0
|
1天前
|
算法 数据挖掘 数据安全/隐私保护
某合伙人app算法分析
某合伙人app算法分析
16 0
|
1天前
|
数据可视化 数据挖掘
【数据分析与可视化】使用pyecharts对App下载量数据进行可视化分析(附源码)
【数据分析与可视化】使用pyecharts对App下载量数据进行可视化分析(附源码)
68 0
|
5月前
|
缓存 安全 NoSQL
App开放接口api安全:Token签名sign的设计与实现
在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些 接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等,但是为了安全起见让用户暴露的明文密码次数越少越好,我们一般在web项目 中,大多数采用保存的session中,然后在存一份到cookie中,来保持用户的回话有效性。
|
6月前
|
区块链 vr&ar
潮玩宇宙APP游戏系统开发技术
从Web2游戏到完全的Web3游戏(全链游戏),中间需要跨越多个环节,包括资产上链、交易上链、成就上链、经济模型上链、核心逻辑上链等,现在许多区块链游戏完成了除核心逻辑之外的上链,被称为Web2.5 Game。

热门文章

最新文章