首页
社区
课程
招聘
[原创]《我叫mt》数据包解包记录
发表于: 2013-6-13 17:22 47510

[原创]《我叫mt》数据包解包记录

2013-6-13 17:22
47510

把自己Blog上的一篇文章转过来,V1.6 V2.5 通用
关于GDB部分,不懂的请看虫大的《android软件安全与逆向分析》
=============================================
== From: blog.breeze356.com

《我叫MT online》使用的是开源项目npk(https://github.com/lqez/npk),想要解包data.dat,需要得到key,步骤记录如下,以备忘。

1. 开启Android JIT Debugging

setprop debug.db.uid 32767
NPK_RESULT __npk_package_open( NPK_PACKAGEBODY* pb, const NPK_CHAR* filename, long filesize, NPK_TEAKEY teakey[4] )
{
    ...
     if( teakey == NULL )
        {
            return ( npk_error( NPK_ERROR_NeedSpecifiedTeaKey ) );
        }
        memcpy( pb->teakey_, teakey, sizeof(NPK_TEAKEY) * 4 ); // 如果在memcpy处crash,[R1] 即为 key[0]
    ...
}
.text:003557BA 20 1C        MOVS    R0, R4
.text:003557BC 1C 30        ADDS    R0, #0x1C       ; dest
.text:003557BE 0A 99        LDR     R1, [SP,#0x270+src] ; src
.text:003557C0 10 22        MOVS    R2, #0x10       ; n
.text:003557C2 0C F6 60 EF  BLX     memcpy
.text:003557C2 0C F6 60 EF  BLX     memcpy
.text:003557C2 00 25        MOVS    R5, #0
.text:003557C4 2D 68        LDR     R5, [R5]

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 5
支持
分享
最新回复 (31)
雪    币: 114
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
哇哈哈哈
2013-6-13 17:37
0
雪    币: 45
活跃值: (55)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
windows的逆向还没学好就不掺和安卓的了。。
2013-6-13 20:29
0
雪    币: 1392
活跃值: (5177)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
4
活捉野生br一只。。快围观
2013-6-14 08:15
0
雪    币: 123
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
很是牛B呀!!!!!楼主很强大!
2013-6-14 16:21
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
好高级,还没碰过IDA,只会smali静态分析
2013-6-14 17:44
0
雪    币: 1140
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
额,先打好windows的基础再研究安卓!
2013-6-14 19:15
0
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
牛X啊,膜拜!
请问,在pc上用什么工具能直接修改arm指令的so库,类似OD修改x86的那样?
2013-6-15 17:26
0
雪    币: 324
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
厉害!安卓解包挺少见的嗯。
2013-6-16 12:27
0
雪    币: 16
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
膜拜一下下……

顺便,这npk编译的真痛苦啊,几个指针乱指,结果死活没编译出来……


编译了个npk出来了……见附件……
npk.7z
上传的附件:
2013-6-16 20:16
0
雪    币: 20
活跃值: (105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
解包修改之后 如何还原呢?
2013-6-17 15:34
0
雪    币: 525
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
Lz  很牛X啊!
2013-6-17 18:26
0
雪    币: 483
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
不懂怎么改
2013-6-17 23:58
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
lz强悍!!
2013-6-18 00:28
0
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
mark  等以后Android再看
2013-6-18 09:05
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
这个可以仿windows下的调试器的写法,
写个简单的调试器,用ptrace附着,在指定地方设置断点,动态截获数据;本质上和gdbserver一样。
2013-6-18 14:32
0
雪    币: 132
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
直接 IDA 调试状态 断点 F8 步过 看下也行吧,不用修改LIB 文件吧~
2013-6-19 10:29
0
雪    币: 132
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
不过需要有 HEX ARM 。才方便
2013-6-19 10:30
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
最近正准备直接看安卓。。windows看起来是跟不上了
2013-6-19 23:33
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
20
http://dotahero.cn/  刀塔英雄~

跟 我叫MT 一模一样的。
2013-6-20 11:42
0
雪    币: 132
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21


2013-6-23 10:37
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
好厉害 正想学习这方面的呢,先mark blog 去
2013-6-23 16:29
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
很nb啊,我用的ida还是5.5的,不支持android啊。等有时间了,换个新版的试试
2013-6-24 11:44
0
雪    币: 218
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
2013-7-16 13:42
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
IDA 6.1已经支持Android了.
2013-7-30 14:12
0
游客
登录 | 注册 方可回帖
返回
//