android 工具箱

android 工具箱_第1张图片

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 可以右键发送至对应的操作,可以自行修改编号来排序 

工具脚本

android 工具箱_第2张图片

使用启动 apk 调试

android 工具箱_第3张图片

smali 阅读工具

apkstudio

sublime

ue

notepad++

apk 修改之理

SmaliViewer

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

1 语法高亮配色

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

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

android 工具箱_第4张图片

加上自己写的几个插件

android 工具箱_第5张图片

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

android 工具箱_第6张图片

jumpsmali 调转到定义函数

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

jumpback 从调转到定义函数返回

android 工具箱_第7张图片

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

android 工具箱_第8张图片

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

你可能感兴趣的:(android 工具箱)