android 工具箱

简介: android 工具箱

一,android 工具箱

工欲善其事必先利其器。介绍一些常用工具和个别使用。一些工具脚本发现 windows 下发送到这个东西蛮方便的,研究一下脚本用来提高效率.

1Apk 反编译或回编译.bat

2 用 jd-gui 查看(或者转 jar 文件).bat 可以直接用 jd-gui 打开 apk 或 dex 看java 代码

3,baksmali 或 smali.bat

4,Apk 反或回编译(调试).bat 主要用于 smali 调试打包

5,smali 生成 dex 文件.bat

6, 对 Apk 进行签名.bat

7,启动调试 apk.bat ida 附加调试 so 时、jdb 调试、smali 调试

8 安装 APK.bat 管家这些老是乱装东西,真不爽,直接用命令多好

9 用 jeb 打开.bat jeb smali->java 的神器使用把 1Apk 反编译.bat 到 9 用 jeb 打开.bat 生成快捷方式再把快捷方式剪贴到用户的sendto 文件夹 sendto 文件夹快速打开方式.

按下 win 键,再搜索输入 shell:sendto 反编译回编译 apk 可以右键发送至对应的操作,可以自行修改编号来排序 

工具脚本


使用启动 apk 调试


smali 阅读工具

apkstudio

sublime

ue

notepad++

apk 修改之理

SmaliViewer

ida每个工具各有优点,尝试一番,最后选择了 notepad++,配合 notepad++的一些插件,可以 diy 一个强大的 smali ide

1 语法高亮配色

2 搜索 当前文件搜索、文件夹搜索、所有打开问题搜索

3 Explorer 文件浏览插件 Python Script python 插件,通过这个插件可以 python写些工具脚本


加上自己写的几个插件


openjava 可直接跳到 java 类(jd-gui,jeb 研究中)

jumpsmali 调转到定义函数

比如一个引用了 invoke-static {v0}, Lcom/mydebug;->log([B)V,使用插件后快速调转到 mydebug.smali 的.method public static log([B)V

jumpback 从调转到定义函数返回


gotosmalifile 快速调转到想打开的 smali 文件apktoolb 回编译并签名插件


apk java 反编译

jd-gui

jad

jebps:不要过于相信这些工具,特别是加密算法分析的,smali 才是根本

so 静态分析工具

IDA

hopperso

动态调试工具IDA

gdb

Affinic Debugger

gikdbg.art

ida+arm F5 下载链接: http://pan.baidu.com/s/1i3qqGoH 

ida 启动时附加

1) adb am start -D -n 包/启动类

2) adb forward tcp:你要转发的端口 jdwp:调转 app 的 pid

3) ida pro attach 进程, 设置新线程,加载 so 时断点,continue

4) jdb -connect com.sun.jdi.SocketAttach:port=转发的端口,hostname=localhostps:不能打开想 eclipse 等调试工具,不然 jdb 会附加不上

如果想用 eclipse,第 4 步换成:

打开调试选项 debug configurations -> Remote Java Application->New_configuration->Project 填包名 ->Conenection Type 选择 SocketAttach->host:localhost->Post:8700点击 debug 即可 (我把调试命令封装在“启动调试 apk.bat”,可以试试)

busybox

Linux 工具里的瑞士军刀。

镜像修改工具

默认情况下 emulator 会以只读的形式加载 system.img,即便 remount 之后对其进行的修改也不会实际被保存下来, 你要安装 xposed 或 su 管理工具就需要修改镜像.mkfs.yaffs2.arm

mkfs.yaffs2.arm 镜像 dump 工具你安装好 xposed、su、busybox 之后,用 mkfs.yaffs2.arm 把镜像 dump 出来

adb shell
#mount -o remount,rw /dev/block/mtdblock0 /system
# mkdir /filesname#cd /filesname 
#./mkfs.yaffs2.arm /system /filesname/my_system.img 
#exit 
adb pull /filesname/my_system.img

接着将该 my_system.img 替换 $ANDROID_SDK/sdk/system-images/android-xx 下的system.img 即可(转自:http://www.kanxue.com/bbs/showthread.php?t=191113)

ps(这样做有个问题就是你有可能收到提示 system 空间不足,因为是在模拟器中,dump 时间过长)

mkyaffs2image_y unyaffsimage

如果有 linux 环境,可以尝试 mkyaffs2image_y unyaffsimage

工具解开镜像

# ./unyaffsimage system.img systemout你可以在解开镜像文件夹 systemout 添加你的程序,注意权限和用户组生成镜像
#./mkyaffs2image_y ./systemout systemnew.img可以参考我写个一个脚本
#!/bin/shrm 
system/app/QuickSearchBox.*rm 
system/app/Calendar.*rm 
system/app/Music.*
cp -av ./bin/su ./system/bin/su
cp -av ./bin/proxy.sh ./system/bin/proxy.sh
cp -av ./bin/redsocks ./system/bin/redsocks
cp -av ./bin/busybox ./system/bin/busybox
cp -av ./bin/Superuser.apk ./system/app/Superuser.apk
echo add 
xposed support ..
cpav./system/bin/app_process./system/bin/app_process.orig
cp-av-f./bin/app_process_xposed./system/bin/app_processcd ./system/bin
pwd
ln -s -f proxy.sh proxy
echo back ..
cd ..
cd ..
sudo chown -R 0:0 ./system/bin/
sudo chown -R 0:0 ./system/lib/
sudo chown -R 0:0 ./system/app/
echo chmod .........
chmod 644 ./system/app/Superuser.apk
chmod 4755 ./system/bin/su
chmod 755 ./system/bin/proxy.sh
chmod 755 ./system/bin/redsocks
chmod 755 ./system/bin/busybox
chmod 755 ./system/bin/app_processpwd./mkyaffs2image_y ./system systemNew.img>./log.txt
chmod 644 ./systemNew.img

hook 框架

xposed

Cydiasubstrate

adbd-Insecure

如果你手机 root 后,adb shell 不是默认 su 权限,可以试试 adbd-Insecure。

网络协议分析工具

http 代理:autoproxy

proxy

droid抓包:

HttpAnalyzer

Fiddler

tcpdump

相关文章
|
5月前
|
XML Android开发 数据格式
Android基础控件介绍
Android基础控件介绍
|
Java Android开发
Android Studio 的一些高级使用技巧
Android Studio 的一些高级使用技巧
128 0
|
Android开发
#6,Android Studio Android 开发控件 显示图片 ImageView的使用
#6,Android Studio Android 开发控件 显示图片 ImageView的使用
|
XML Android开发 数据格式
【Android 应用开发】Android - TabHost 选项卡功能用法详解
【Android 应用开发】Android - TabHost 选项卡功能用法详解
318 0
【Android 应用开发】Android - TabHost 选项卡功能用法详解
|
Android开发 容器
RelativeLayout布局实验(Android Studio)
RelativeLayout布局实验(Android Studio)
176 0
RelativeLayout布局实验(Android Studio)
|
Java Android开发
【安卓开发】Android中自定义软键盘的使用
【安卓开发】Android中自定义软键盘的使用
487 0
【安卓开发】Android中自定义软键盘的使用
|
Android开发
【安卓开发】Android实现画板
【安卓开发】Android实现画板
134 0
|
机器人 Android开发
Android常见界面控件(基础入门)
Android常见界面控件(基础入门)
318 0
Android常见界面控件(基础入门)