吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5338|回复: 6
收起左侧

[Android 原创] 某游戏手机动态密保锁算法逆向2---OTP算法逆向思路

  [复制链接]
a1046830 发表于 2019-10-12 22:32
本帖最后由 a1046830 于 2019-10-12 22:37 编辑

本来我打算贴出我的HOOK代码和JAVA代码,看了上一个帖子的回复,我把最新版本的APK下载下来看了下,emmmm......第二个帖子还是只说下我的思路好了,毕竟这个是账号动态密码验证,有关游戏安全性。虽然不是那种破解逆向算法就能盗号的,但是毕竟这是别人的商用的......
12.jpg
要生成六位动态密码,两个重要参数,一个是设备号加密之后生成的byte[]数组(OTPKEY),一个是北京时间。
其中的byte[] v0 = this.g()函数,但是由于jeb无法反编译不了,感兴趣的查看smaili代码,然后它的返回值指向类构造函数
14.jpg

15.jpg
同样也无法反编译,所以查看smali代码或者说用android killer反编译是可以查看的。
但是这个类构造函数中也有参数,这个可能是框架初始化。
cmd打开它本地文件夹/data/data/包名这个文件夹会发现数据库和一大堆文件,我开始一位它框架初始化之后把数据放在这些文件夹中,结果发现我走偏了
虽然可能otpkey存放在这些这些文件中,但是查看代码会发现otpkey在初始化存放的时候是和其他数据md5加密后存放的,所以这些文件夹等于没用
17.jpg 19.jpg 20.jpg
所以有个思路android hook(Frid a)。用挂起方式创建进程,在框架初始化的时候hook g()这个函数(需要重载)输出返回值就可以拿到otpkey,我hook 是拿手机(android 9.0),模拟器的话使用最新的frIDA效果有点拉胯。
关于frida的使用参见下面两篇文章,入门很简单,就是简单的python+js
一篇文章带你领悟frida的精髓(基于安卓8.1
初识Frida--Android逆向之Java层hook (一)
顺便介绍下OTP算法
OTP,HOTP,TOTP基本原理
(大家看着下饭就好了,图个乐)

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
sangong + 2 + 1 用心讨论,共获提升!
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
aachan1 + 1 + 1 热心回复!
毛新航 + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| a1046830 发表于 2019-10-12 22:34
链接好像挂了,我补下链接
frida使用:
https://github.com/hookmaster/frida-all-in-one
https://blog.csdn.net/zouyuanxc/article/details/80492465
OTP算法原理:
https://blog.csdn.net/weixin_37569048/article/details/80257368
jics007 发表于 2019-10-13 00:51
很好的思路!举一反三!某易的其实相差无异!
fcyyx 发表于 2019-10-13 22:54
a952106160 发表于 2019-10-14 01:21
你好,能不能留个联系,向你学习!
 楼主| a1046830 发表于 2019-10-14 11:01
a952106160 发表于 2019-10-14 01:21
你好,能不能留个联系,向你学习!

私聊我吧,一起交流
a952106160 发表于 2019-10-25 03:19
支持一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 13:13

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表