From ab2814a84840efc9b4621f79ddc25f8143a6c197 Mon Sep 17 00:00:00 2001 From: 6time <31231318+moyuwa@users.noreply.github.com> Date: Fri, 26 Jan 2024 19:15:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ACPverifyAllSignatureVersions.go | 31 ++++++++ PackByLibSo.go | 8 +-- README.md | 9 ++- ScanAntiByDex.go | 120 +++++++++++++++++++++++++++++++ main.go | 3 + run2.png | Bin 0 -> 49707 bytes 6 files changed, 164 insertions(+), 7 deletions(-) create mode 100644 ACPverifyAllSignatureVersions.go create mode 100644 ScanAntiByDex.go create mode 100644 run2.png diff --git a/ACPverifyAllSignatureVersions.go b/ACPverifyAllSignatureVersions.go new file mode 100644 index 0000000..1626997 --- /dev/null +++ b/ACPverifyAllSignatureVersions.go @@ -0,0 +1,31 @@ +package main + +import ( + "fmt" + "github.com/avast/apkverifier" + "os" +) + +func verifyApk(apkpath string) bool { + //读取配置 + res, err := apkverifier.Verify(apkpath, nil) + if err != nil { + fmt.Fprintf(os.Stderr, "Verification failed: %s\n", err.Error()) + return false + } + //判断是否为V1版本 + if res.SigningSchemeId == 1 { + fmt.Printf("Verification scheme used: v%d 版本签名,有Janus漏洞!\n", res.SigningSchemeId) + } else { + fmt.Printf("Verification scheme used: v%d 版本签名,无Janus漏洞!\n", res.SigningSchemeId) + } + //输出相信信息 + cert, _ := apkverifier.PickBestApkCert(res.SignerCerts) + if cert == nil { + fmt.Printf("No certificate found.\n") + } else { + fmt.Println(cert) + } + + return true +} diff --git a/PackByLibSo.go b/PackByLibSo.go index 0b3b6ea..47defa1 100644 --- a/PackByLibSo.go +++ b/PackByLibSo.go @@ -30,7 +30,7 @@ func PackByLibSo(apkpath string) bool { //fmt.Println("Sopath:", s) for _, file := range apkReader.File { if file.Name == s { - fmt.Printf("Sopath %s->%s\n", key, file.Name) + fmt.Printf("发现加固特征 Sopath %s->%s\n", key, file.Name) } } } @@ -38,7 +38,7 @@ func PackByLibSo(apkpath string) bool { //fmt.Println("Soname:", s) for _, file := range apkReader.File { if strings.Contains(file.Name, s) { - fmt.Printf("Soname %s->%s\n", key, file.Name) + fmt.Printf("发现加固特征 Soname %s->%s\n", key, file.Name) } } } @@ -46,7 +46,7 @@ func PackByLibSo(apkpath string) bool { //fmt.Println("Other:", s) for _, file := range apkReader.File { if strings.Contains(file.Name, s) { - fmt.Printf("Other %s->%s\n", key, file.Name) + fmt.Printf("发现加固特征 Other %s->%s\n", key, file.Name) } } } @@ -55,7 +55,7 @@ func PackByLibSo(apkpath string) bool { for _, file := range apkReader.File { re := regexp.MustCompile(s) if re.MatchString(file.Name) { - fmt.Printf("Soregex %s->%s\n", key, file.Name) + fmt.Printf("发现加固特征 Soregex %s->%s\n", key, file.Name) } } } diff --git a/README.md b/README.md index 49fef8a..417fc23 100644 --- a/README.md +++ b/README.md @@ -26,10 +26,13 @@ ![gui1](run1.png) +![gui1](run2.png) + 未来可能有的(大概率没有) 特征so库扫描 通过对比加固特征so库名/路径,判断是否有加固 √ - 校验签名 校验V2签名,判断是否存在Janus漏洞 × - com包名 搜索com包名,判断是否有套层加固 × - Dex泄露扫描 扫描Dex文件内容,扫描是否有密钥字符串 × + 校验签名 校验V2签名,判断是否存在Janus漏洞 √ + com包名 搜索com包名,判断是否有套层加固 × + Dex泄露扫描 扫描Dex文件内容,匹配是否有密钥字符串 × + 环境检测扫描 扫描Dex文件搜索是否有Root、模拟器检测 √ 加固原理判断 对未知加固(厂商),判断是第几代加固,提示脱壳方向 × diff --git a/ScanAntiByDex.go b/ScanAntiByDex.go new file mode 100644 index 0000000..de44a35 --- /dev/null +++ b/ScanAntiByDex.go @@ -0,0 +1,120 @@ +package main + +import ( + "bytes" + "fmt" + "github.com/avast/apkparser" + "os" + "path" +) + +// root检测常见 路径、字符串 +var rootstringsCommonpaths = []string{ + "/cache/.disable_magisk", + "/cache/magisk.log", + "/cache/su", + "/data/adb/ksu", + "/data/adb/ksud", + "/data/adb/magisk", + "/data/adb/magisk.db", + "/data/adb/magisk.img", + "/data/adb/magisk_simple", + "/data/local/bin/su", + "/data/local/su", + "/data/local/xbin/su", + "/data/su", + "/dev/.magisk.unblock", + "/dev/com.koushikdutta.superuser.daemon/", + "/dev/su", + "/init.magisk.rc", + "/sbin/.magisk", + "/sbin/su", + "/su/bin/su", + "/system/app/Kinguser.apk", + "/system/app/Superuser.apk", + "/system/bin/.ext/su", + "/system/bin/failsafe/su", + "/system/bin/su", + "/system/etc/init.d/99SuperSUDaemon", + "/system/sbin/su", + "/system/sd/xbin/su", + "/system/usr/we-need-root/su", + "/system/xbin/busybox", + "/system/xbin/daemonsu", + "/system/xbin/ku.sud", + "/system/xbin/su", + "/vendor/bin/su", + "Kinguser.apk", //某些检测会将路径字符串分开 + "Superuser.apk", //某些检测会将路径字符串分开 + "/system/xbin/", //某些检测会将路径字符串分开 + "/vendor/bin/", //某些检测会将路径字符串分开 +} + +// root检测常见 apk 包名字符串 +var rootstringsmanagementApp = []string{ + "com.chelpus.lackypatch", + "com.dimonvideo.luckypatcher", + "com.koushikdutta.rommanager", + "com.koushikdutta.rommanager.license", + "com.koushikdutta.superuser", + "com.noshufou.android.su", + "com.noshufou.android.su.elite", + "com.ramdroid.appquarantine", + "com.ramdroid.appquarantinepro", + "com.thirdparty.superuser", + "com.topjohnwu.magisk", + "com.yellowes.su", + "eu.chainfire.supersu", + "me.weishu.kernelsu", +} + +// 模拟器检查 +var emulatorStrings = []string{ + "tel:123456", + "test-keys", + "goldfish", + "android-test", + "000000000000000", + "/dev/socket/qemud", + "/dev/qemu_pipe", + "/dev/qemu_trace", +} + +func ScanDexAnti(dexData []byte, filePath string) { + // 搜索dex文件中是否包含root检测特征字符串 + for _, str := range rootstringsCommonpaths { + if bytes.Contains(dexData, []byte(str)) { + fmt.Printf("发现ROOT检测特征 [dex]: %s->%s\n", str, filePath) + break + } + } + // 搜索dex文件中是否包含模拟器检测特征字符串 + for _, str := range emulatorStrings { + if bytes.Contains(dexData, []byte(str)) { + fmt.Printf("发现模拟器检测特征 [dex]: %s->%s\n", str, filePath) + break + } + } +} + +func ScanAPKAnti(apkpath string) bool { + //解析apk文件 + apkReader, err := apkparser.OpenZip(apkpath) + if err != nil { + fmt.Fprintln(os.Stderr, err) + return false + } + defer apkReader.Close() + + // 读取dex文件扫描 + for _, file := range apkReader.File { + if path.Ext(file.Name) == ".dex" { + //fmt.Printf("Scan %s\n", file.Name) + var dexData = []byte{} + dexData, err = file.ReadAll(1024 * 1024 * 100) //单个文件读取最大设置为100MB + ScanDexAnti(dexData, file.Name) + } + } + + return true +} diff --git a/main.go b/main.go index d8c336a..a63e264 100644 --- a/main.go +++ b/main.go @@ -67,5 +67,8 @@ func scanAPKFolder(folderPath string) error { func scanAPKFile(filePath string) error { //fmt.Printf("scanAPKFile") PackByLibSo(filePath) + ScanAPKAnti(filePath) + //ScanAPKHardCoded(filePath) //匹配规则待调整,先不上 + verifyApk(filePath) return nil } diff --git a/run2.png b/run2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b55585bfc111a8a67aacfa66c56249d5a510196 GIT binary patch literal 49707 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 literal 0 HcmV?d00001