#命令大全及调试步骤#

cmd命令

1.端口占用查看:netstat -ano | findstr "5037"

2.结束进程 taskkill -f -pid 5340

报错

adb.exe: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.

        检查 C:\Users\Admin\.android 下 adb_usb.ini,adbkey,adbkey.pub文件是否存在且值正确,或者关闭手机的USB调试,再打开调试,cmd中在连接

        使用jdb附加程序,调试Java层代码,此命令是本地ip + 监听端口(可以用ddms看,ddms上面显示 8602/8700,填后面那个)

5.adb devices报错:adb server version (36) doesn't match this client (41); killing...

        夜神模拟器的adb.exe与本机exe版本不同,将本机adb.exe(可以使用adb --version 命令)改名为nox_adb.exe,覆盖夜神模拟器安装目录 \Nox\bin 下的 nox_adb.exe。

6 ./mprop ro.debuggable 1   将值改为1,getprop ro.debuggable    输出为1即为更改成功

   magisk resetprop ro.debuggable 1:通过magisk设置ro.debuggable调试属性为1

   stop;start;  必须通过cmd输入该指令重启设备

7 adb install -r demo.apk  :adb安装apk命令

8 adb shell dumpsys activity activities :adb查看当前activity

9.xposed的xinstaller模块可以开启调试程序的权限。

adb命令

chmod +x /data/local/tmp/ida64:给文件执行权限

/data/local/tmp/ida64 -p12345:更改默认监听端口

so文件调试

1.JNI_OnLoad函数调试:

adb shell am start -D -n 包名 / 包名.activity名:以调试模式启动改包下的这个activity。

手机端通过adb命令运行android_server,ida附加程序,加载librarry时断点选项打勾

jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700

在使用jdb附加程序,8700为ddms中进程对应的端口号,有两个,那个好使填哪个

然后,app的Java层代码开始运行,加载so文件时IDA窗口会断下,看到目标so文件被加载时,此时可能是在 libart.so 或 liblinker.so 中,通过基质加偏移下断点运行也可以跳过frame框架的so文件加载流程。

so文件在IDA中直接下断点;调试模式启动app或者activity;ida中 Debugger->Select debugger ->Remote ARM Linux/Android debugger ;ida再来 Debugger->process option;最后在ida attach

更改默认端口:./android_server -p123456    注意:p后面没有空格

2.so可 自执行 文件调试

frida

包与脚本同时启动:frida -U -no-pause -f 包名 -l PC脚本绝对路径hook.js

frida -U -no-pause -f rca.rc.tvtaobao -l C:\Users\Admin\Desktop\data\python脚本\frida\TVtaobao.js

apktool

        PC目录下打开cmd

  1. 反编译命令: apktool d -f <apkfile_path> -o <output_path>        
  2. 打包命令:     apktool b <package_path> -o <outputapk_path>

Emscripten SDK

        EMSDK目录下打开cmd

emsdk activate latest:激活SDK

emcc -v:查看版本,看激活是否成功

smali及AndroidMianfest

apk可调试权限:android:debuggable="true"

readlf

文件头:readlf -h 666.so   (so文件需在安装目录..../home/Admin/中)

程序头:-l           节头表:-S           符号表:-s                动态段信息:-d (可查到so文件的init_array)

baksmali.jar及smali.jar  

classes2smali

java -jar [BaksmaliPath] d [DexPath] -o [OutputPath]

smali2classes

java -Xmx512M -jar [SmalijarPath] assemble [SmailPath] -o [OutputPath]

下载地址:xJesusFreke / smali / Downloads — Bitbucket

010Editor

dex文件头SHA1修复:010中,脚本 -> 新建 -> 复制下面代码 -> 运行 -> Ctrl + s保存

//------------------------------------------------
//--- 010 Editor v13.0.1 Script File
//
//      File: 
//   Authors: 
//   Version: 
//   Purpose: 
//  Category: 
//   History: 
//------------------------------------------------
int endian = ReadInt(0x28); //endian_flag
if (endian == 0x12345678) {
    LittleEndian();
} else {
    BigEndian();
}

uchar sha1[20];
ReadBytes(sha1, 0xc, 20);

Printf("src sha1: ");
uint i=0;
for (i=0; i<20; i++)
{
    Printf("%02x", sha1[i]);
}
Printf("\n");

uchar checksum[20];
ChecksumAlgBytes(CHECKSUM_SHA1, checksum, 0x20);

Printf("calced sha1: ");
for (i=0; i<20; i++)
{
    Printf("%02x", checksum[i]);
}
Printf("\n");


int adler32 = ReadInt(0x8);
if (Memcmp(checksum, sha1, 20) != 0) {
    WriteBytes(checksum, 0xc, 20);
} else {
    Printf("same sha1\n");
}

//uchar adler32_[4];
//ChecksumAlgBytes(CHECKSUM_ADLER32, adler32_, 0xc);
int adler32_ = Checksum(CHECKSUM_ADLER32, 0xc);
Printf("src adler32: %x\n", adler32);
Printf("calced adler32: %x\n", adler32_);

if (adler32_ != adler32) {
    WriteInt(0x8, adler32_);
} else {
    Printf("same adler32\n");
}

Printf("Done.\n");

ddms

ddms报错,错误日志输出在 D:\zzc\Java&android_SDK\SDK\android-sdk-windows\tools\lib\monitor-x86_64\configuration\1681956388842.log

任务管理器中结束进程,删除 C:\Users\liang\.android\monitor-workspace 文件夹,重新运行ddms.

IDA

shift + F7:查看区段(.init_arry中的函数指针会在JNI_OnLoad执行之前,挨个被执行)

dexdump

frida-dexdump -FU : 手机端运行frida server 并监听端口,使用该命令dump内存中的dex,F:前台活动App  U:USB

SoFixer   -修复内存中dump的so

sofixer  -s soruce.so -o fix.so -m 0x0 -d 
-s 待修復的so路徑
-o 修復後的so路徑
-m 內存dump的基地址(16位) 0xABC
-d 輸出debug信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值