首页
社区
课程
招聘
[原创]Android逆向调试插件开发
发表于: 2018-3-14 10:21 4671

[原创]Android逆向调试插件开发

2018-3-14 10:21
4671

Android逆向调试插件

工作需要分析一些apk的机制,写的一个android逆向调试的插件,基于netbeans的,可以对smali代码的每一行下断点,就像windows里面的ollydbg一样好用。
大概原理首先反编译源文件,反编译的同时记录下行信息,并保存在自己设置的专有格式的文件中,用户后续调试器调试。而后打开NetBeans调试器,同时打开一个自研的jdwp的代理,该代理打开上面生成的调试信息文件,用户接管断点信息等。此时可以向ollydbg一样一步步调试了。具体步骤如下:

1
 

打开命令行

2
 

调用edi程序反编译需要调试的apk,生成相应的java文件以及包含调试信息的XxX文件(目前这个edi有两个版本,一个是调用apktool反编译,一个是根据dexdump字节写的,还未完善。。这个地方好像没写好,要文件名全名,直接把文件拖到命令行界面下就行)

3
 

调用JdwpProxy程序打开上面生成的XxX文件
该程序同时接管8700端口(为图方便,一般ddms调试就会转发至该端口),转发至13131(这个数字没意义,随意写死的)

4
 

打开NetBeans并新建一个项目
图片描述
图片描述
图片描述
添加进去第二步生成的java文件夹,用户后面调试,设置调试选项:
图片描述
此时环境即配置完毕,只需ddms中选择待调试进程,将该进程转发至8700端口就可以进行相关调试了。(这边有个问题,ddms每次调试断开之后都得再点一次将端口转发至8700,而如果用adb的话没有这个问题,设置一次除非程序挂了,就一直转发在8700端口了)
关于待调试的apk,还是使用的原有apk,如何设置apk可调试,网上方法很多了,我是采用的setpropx(好像是这个名字吧),修改系统中ro.debuggable = 1,让程序变为可调。
界面如下:
图片描述
因为代码写在加密计算机里了,暂时发不出来,原理及源代码大家有兴趣的话,慢慢放出来,有问题的话欢迎提出来啊


[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 168
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这也水,apktool  早期版本支持这种debug
2018-3-14 10:26
0
雪    币: 1461
活跃值: (1417)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
apktool不是只能在line行下下断点吗?这个是每行smali代码都可以呀?
2018-3-14 11:04
0
雪    币: 14481
活跃值: (5738)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你这个比IDA还难用。IDA本身就能干这个,除非你更好
2018-3-14 11:10
0
雪    币: 7
活跃值: (223)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
人做了个工具分享给大家,怎么都是泼冷水的。无语  我给你点个赞
2018-3-14 13:15
0
雪    币: 1461
活跃值: (1417)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
tDasm 你这个比IDA还难用。IDA本身就能干这个,除非你更好
刚看了IDA,他的变量信息看起来是很不方便的,没有我这个方便起码,很多都是bad  type,另外看代码的时候也没有netbeans这种看似开发者的角度看的舒服吧感觉
2018-3-15 15:42
0
雪    币: 552
活跃值: (4047)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
可以的,支持啊,继续完善
2018-3-15 20:48
0
雪    币: 14481
活跃值: (5738)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
hackdaliu 刚看了IDA,他的变量信息看起来是很不方便的,没有我这个方便起码,很多都是bad type,另外看代码的时候也没有netbeans这种看似开发者的角度看的舒服吧感觉
这是你不会用IDA,变量都可以看得到的,只要定义一下变量的类型。
2018-3-16 10:36
0
雪    币: 2
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
支持
2018-3-16 11:35
0
雪    币: 303
活跃值: (179)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
10
我的态度是支持的,当前大部分smali调式实质都是跳跃性的java调式,希望可以楼主可以早日放出工具
2018-3-16 12:44
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bwn
11
其实  希望大牛可以做一个对于混淆文件自动插入行号    然后自动转换为源代码,而且行号依然能对应
2018-3-17 01:00
0
雪    币: 2122
活跃值: (9998)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
当然是支持支持,开源的话,大牛可以加快完善功能
2018-4-4 15:48
0
雪    币: 5330
活跃值: (5424)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
13
支持一下
2018-4-4 17:37
0
雪    币: 94
活跃值: (333)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
14
厉害了我的哥
2018-4-9 19:49
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
厉害了
最后于 2018-4-15 01:15 被lovexy看雪编辑 ,原因:
2018-4-15 01:13
0
游客
登录 | 注册 方可回帖
返回
//