echo_col() {
echo -e "\n\033[33;40m- $1 -\033[0m\n"
}
echo_ero() {
echo -e "\n\033[31;40m- $1 -\033[0m\n"
}
pak_info() {
date '+%Y-%m-%d %H:%M:%S' -d @$(stat -c %Y $1)
}
set_env() {
baksmali=bin/baksmali.jar
apktool=bin/apktool.jar
smali=bin/smali.jar
zipalign=bin/zipalign.exe
zip=bin/zip.exe
unzip=bin/unzip.exe
}
apk_unpack() {
echo_col "正在使用 Apktool 反编译 $1 当前文件时间戳:$(pak_info $1)"
java -jar $apktool d -r -o ${1%.*} $1 -f
[[ "$?" == "1" ]] && {
echo_ero "Apktool 反编译失败 正在尝试使用 baksmali 反编译"
rm -rf ${1%.*}
$unzip -j $1 "class*.dex" -d ${1%.*}
find ${1%.*} -maxdepth 1 -type f -name "classes*.dex" | while read file; do
echo_col "正在使用 baksmali 反编译 ${file%*/} 当前文件时间戳:$(pak_info $1)"
java -jar $baksmali d -o ${file%.*} $file
done
}
[[ -f ${1%.*}/apktool.yml || -s ${1%.*}/class*.dex ]] && (echo_col "反编译 $1 完成 按任意键返回" && read) || return 1
}
apk_pack() {
echo_col "正在使用 Apktool 回编译 $1 当前文件时间戳:$(pak_info $1)"
java -jar $apktool b -o ${1%.*}.zip -c ${1%.*} -f
[[ "$?" == "1" ]] && {
echo_ero "Apktool 回编译失败 正在尝试使用 smali 回编译"
rm -rf ${1%.*}.zip
find ${1%.*} -maxdepth 1 -type d -name "classes*" -o -name "smali*" | while read file; do
echo_col "正在使用 smali 回编译 ${file%*/}.dex 当前文件时间戳:$(pak_info $1)"
java -jar $smali a -o $file.dex $file
done
[[ -s ${1%.*}/class*.dex ]] || return 1
cp $1 ${1%.*}.zip
$zip -ju ${1%.*}.zip ${1%.*}/*.dex
}
[[ -s ${1%.*}.zip ]] || return 1
echo_col "回编译 $1 完成 新的文件时间戳:$(pak_info $1)"
echo_col "正在使用 zipalign 进行4字节对齐优化 按任意键返回" && read
[[ -f $1 ]] && mv $1 $1.old
$zipalign -p -f -v 4 ${1%.*}.zip $1 >/dev/null 2>&1
rm -rf ${1%.*}.zip
}
apk_zipa() {
cp $1 ${1%.*}.zip
$zip -ju ${1%.*}.zip ${1%.*}/*.dex
echo_col "回编译 $1 完成 新的文件时间戳:$(pak_info $1) 按任意键返回" && read
echo_col "正在使用 zipalign 进行4字节对齐优化"
[[ -f $1 ]] && mv $1 $1.old
$zipalign -p -f -v 4 ${1%.*}.zip $1 >/dev/null 2>&1
rm -rf ${1%.*}.zip
}
echo_menu1() {
echo_col "反编译文件 - - 回编译文件"
ls *.apk *.jar 2>/dev/null | while read file; do
local num=$((num + 1))
echo -ne "D$num.$file B$num.$file\n"
done
}
D_choice() {
ls *.apk *.jar 2>/dev/null | while read file; do
local num=$((num + 1))
[[ "D$num" == "$choice" ]] && echo "$file" && return
done
}
B_choice() {
ls *.apk *.jar 2>/dev/null | while read file; do
local num=$((num + 1))
[[ "B$num" == "$choice" ]] && echo "$file" && return
done
}
echo_menu2() {
while :; do
clear && echo_menu1
read -p "$(echo -ne "\n请输入序号 [ 55 退出该程序 ]:")" choice
case $choice in
D*)
D_apk=$(D_choice)
[[ ! -n "$D_apk" ]] && (echo_ero "未找到匹配文件" && read && continue 1)
[[ -n "$D_apk" ]] && (apk_unpack $D_apk || (echo_ero "反编译失败" && rm -rf ${D_apk%.*} && read))
continue
;;
B*)
B_apk=$(B_choice)
[[ ! -d "${B_apk%.*}" || ! -n "$B_apk" ]] && echo_ero "未找到匹配文件" && read && continue 1
[[ -n "$B_apk" && -d "${B_apk%.*}" ]] && apk_pack $B_apk || (echo_ero "回编译失败" && read && continue 1)
continue
;;
"55")
break
;;
*)
echo_ero "不存在该选项" && read
continue
;;
esac
done
}
set_env
echo_menu2
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源说明; 1--工具可以一键反编译和回编译apk与jar格式的工具 2----工具带实测演示图示 方便操作者对照操作 3----对于一些常用apk操作比较简单。系统类的需要加载系统框架编译。对与有壳的app。需要自行去壳后才可以。 4---需要一定动手能力较强的友友操作使用 5---资源下载后解压然后改名英文短路径在操作。避免有些电脑系统不识别中文路径
资源推荐
资源详情
资源评论
收起资源包目录
安卓一键反编译回编译apk+jar格式工具.rar (12个子文件)
一键启动DBTools.BAT 57B
DBTools.sh 4KB
使用前必读.rar 654B
演示图.png 13KB
bin
apktool.jar 16.84MB
zipalign.exe 817KB
baksmali.jar 1.23MB
smali.jar 941KB
unzip.exe 100KB
zip.exe 67KB
busybox.exe 551KB
cygwin1.dll 3.26MB
共 12 条
- 1
资源评论
- jimmy.net2023-12-30果断支持这个资源,资源解决了当前遇到的问题,给了新的灵感,感谢分享~
安卓机器
- 粉丝: 1w+
- 资源: 783
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C#ASP.NET小型OA办公管理系统源码带文档数据库 SQL2008源码类型 WebForm
- rabbitmq-server-3.13.3-windows安装包
- 办公必备小工具+【筛选符合条件的文件】+【根据文件名和文件格式】
- rabbitmq-server-3.13.4-windows安装包
- rabbitmq-server-3.13.5-windows安装包
- rabbitmq-server-3.13.6-windows安装包
- 理光Ricoh 7502打印机驱动下载
- python爬虫bs4的基本使用、代理IP和bs4解析【实战讲解-爬取斗鱼颜值主播数据】.zip
- 科目一,扣分法规的的的的
- 科目一易错题,整理的的的的
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功