amimo / dcc Goto Github PK
View Code? Open in Web Editor NEWDCC (Dex-to-C Compiler) is method-based aot compiler that can translate DEX code to C code.
License: Apache License 2.0
DCC (Dex-to-C Compiler) is method-based aot compiler that can translate DEX code to C code.
License: Apache License 2.0
在Application类中加载了so,能正常安装但是打不开,希望大佬帮忙看看,原始的apk在附件中,感谢。
app.apk.zip
I find that the dcc only processes the first dex file in the apk although the writer said he has fixed this bug already.My sample apk has fourteen dex files and if the target don't situate in the first dex,the dcc will output:info no methods compiled.If in,everything is ok.
python3 dcc.py tests/demo-java/app/build/outputs/apk/debug/app-debug.apk --source-dir=tests/demo-c/app/src/main/ --no-build
运行的不是demo-c中原有的Java方法,而是新的c方法?
类似这样的smali,在kotlin里面出现的比较多,每个参数都有表示非空的那个annotation:
69 # virtual methods
70 .method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
71 .locals 4
72 .param p1, "context" # Landroid/content/Context;
73 .annotation build Lorg/jetbrains/annotations/Nullable;
74 .end annotation
75 .end param
76 .param p2, "intent" # Landroid/content/Intent;
77 .annotation build Lorg/jetbrains/annotations/Nullable;
78 .end annotation
79 .end param
dcc会处理成:
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
然后apktool重新smali时报错:
xxxx.smali[73,26] Multiple annotations of type Lorg/jetbrains/annotations/Nullable;
xxxx.smali[73,26] mismatched tree node: UP expecting I_FIELDS
Could not smali file: xxxx.smali
目前在stackoverflow找到的可行方法是在Android.mk加入下面两行
LOCAL_SHORT_COMMANDS :=true
APP_SHORT_COMMANDS :=true
另Ubuntu下没有这个毛病
100%复现方法:随便找一个不是dex的文件改名为xxx.dex塞进apk任意目录
临时解决方法:先把这个不是dex的.dex文件删掉再加固,加固后再塞回来
当使用的混淆为自定义的符号时(即非原版abcd混淆时),会报字符编码错误,是处理程序不支持utf-8编码吗?可否修复?
!<clinit|init>
.;searchNumber(BJIIJJ.
.;searchNumber(BJJIIJJ.
#.*
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\ADMINI~1\AppData\Local\Temp\dcc-project-3poeod0w\jni\nc\Java_com_yihe_suho_ui_activity_mine_SelectTabActivity_launch__Landroid_content_Context_2Lcom_com_yihe_suho_bean_request_RegisterDeviceCodeRequestBean_2Ljava_lang_String_2.cpp'
1、请问这个错误改怎么解?
2、开启代码混淆可以吗,我测试了开启混淆会报错
owner@ubuntu:~/Desktop/github/dcc$ python3 dcc.py app-release.apk -o out.apk
[WARNING ] androguard.core.api_specific_resources: Requested API level 30 is larger than maximum we have, returning API level 28 instead.
[WARNING ] dcc: compile method failed:Lcom/common/security/PS;run()V (unkonw type vResult_43)
Traceback (most recent call last):
File "dcc.py", line 369, in compile_dex
code = compiler.get_source_method(m)
File "/home/owner/Desktop/github/dcc/dex2c/compiler.py", line 557, in get_source_method
irmethod = z.process()
File "/home/owner/Desktop/github/dcc/dex2c/compiler.py", line 170, in process
self.build()
File "/home/owner/Desktop/github/dcc/dex2c/compiler.py", line 207, in build
self.verify_operand_type()
File "/home/owner/Desktop/github/dcc/dex2c/compiler.py", line 229, in verify_operand_type
raise Exception('unkonw type %s' % var)
Exception: unkonw type vResult_43
[WARNING ] dcc: ================================
[WARNING ] dcc: Lcom/common/security/PS;run()V:unkonw type vResult_43
[WARNING ] dcc: ================================
像dex apk这种主要还是针对于编译后的加固,如果是开发过程中的针对组件形式的保护可能我觉得碰到的场景会更多一点
因readme里写17+不确定包含17吗 顺便问楼主有测试17以下版本吗?.
everything is fine
Build command failed.
Error while executing process C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\20.1.5948944\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\Administrator\Desktop\0\dcc\tests\demo-c\app\src\main\jni\Android.mk NDK_APPLICATION_MK=C:\Users\Administrator\Desktop\0\dcc\tests\demo-c\app\src\main\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-19 NDK_OUT=C:/Users/Administrator/Desktop/0/dcc/tests/demo-c/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=C:\Users\Administrator\Desktop\0\dcc\tests\demo-c\app\build\intermediates\ndkBuild\debug\lib C:/Users/Administrator/Desktop/0/dcc/tests/demo-c/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libnc.so}
[armeabi-v7a] Compile++ thumb: nc <= Java_com_test_TestCompiler_MethodCall_manyArgs__IJIJIJIIDFDSICIIBZIIJJIIIII_3_3Ljava_lang_String_2_3Ljava_lang_String_2Ljava_lang_String_2.cpp
make: *** [C:/Users/Administrator/Desktop/0/dcc/tests/demo-c/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/nc/nc/Java_com_test_TestCompiler_MethodCall_manyArgs__IJIJIJIIDFDSICIIBZIIJJIIIII_3_3Ljava_lang_String_2_3Ljava_lang_String_2Ljava_lang_String_2.o] Error 1
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Administrator\PycharmProjects\untitled\venv\include -IC:\Users\Administrator\AppData\Local\Programs\Python\Python38\include -IC:\Users\Administrator\AppData\Local\Programs\Python\Python38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\cppwinrt" /Tcbuild\temp.win-amd64-3.8\Release_openssl.c /Fobuild\temp.win-amd64-3.8\Release\build\temp.win-amd64-3.8\Release_openssl.obj
_openssl.c
build\temp.win-amd64-3.8\Release_openssl.c(498): fatal error C1083: 无法开启包括档案: 'openssl/opensslv.h': No such file or directory
error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\bin\HostX86\x64\cl.exe' failed with exit status 2
Running setup.py clean for cryptography
Failed to build cryptography
Failed building wheel for cryptography
Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
这个如何配置呢?
转换方法数太少,只能是基本的单行语句问题怎么解决,简单的demo 稍微多几行的方法都不能转换 ,请教博主大牛,给个思路或者建议
在配置完SDK,JDK和NDK的环境之后进行测试demo,编译demo-java
cd tests/demo-java
./gradlew assembleDebug成功
下一步将dex编译到c生成c代码输出到demo-c的/src/main目录下出错
python3 dcc.py tests/demo-java/app/build/outputs/apk/debug/app-debug.apk --source-dir=tests/demo-c/app/src/main/ --no-build
Traceback( most recent call last):
File "dcc.py",line 18,in
from dex2c.compiler import Dex2C
File "/home/dev/dcc/dex2c/compiler.py",line 27,in
from dex2c.basic_blocks import fill_node_from_block
File "home/dev/dcc/dex2c/basic_blocks.py",line 22,in
from dex2c.instruction import MoveResultExpression
File "home/dev/dcc/dex2c/instruction.py",line 299
self.value: Value = None
SyntaxError:invalid syntax
self.value后面的冒号显示SyntaxError
如题
大佬,有没有考虑过将JNI静态注册改为动态注册?
PS C:> python .\dcc.py .\app-debug.apk -o .\app-debug1.apk
[WARNING ] androguard.core.api_specific_resources: Requested API level 31 is larger than maximum we have, returning API level 28 instead.
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= well_known_classes.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_android_material_datepicker_MaterialDatePicker_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_androidx_activity_ComponentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_androidx_fragment_app_DialogFragment_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_android_material_datepicker_MaterialCalendar_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_androidx_appcompat_app_AppCompatDelegateImpl_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_androidx_appcompat_app_AppCompatDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_android_material_bottomsheet_BottomSheetDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_android_material_datepicker_MaterialTextInputPicker_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_androidx_core_app_ComponentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_androidx_fragment_app_FragmentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_androidx_appcompat_app_AlertDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_androidx_fragment_app_Fragment_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_android_material_timepicker_MaterialTimePicker_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Dex2C.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_android_material_datepicker_MaterialStyledDatePickerDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= well_known_classes.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_com_google_android_material_datepicker_MaterialDatePicker_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_androidx_activity_ComponentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_androidx_fragment_app_DialogFragment_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_androidx_appcompat_app_AppCompatDelegateImpl_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_com_google_android_material_datepicker_MaterialCalendar_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_androidx_appcompat_app_AppCompatDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_com_google_android_material_bottomsheet_BottomSheetDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_com_google_android_material_datepicker_MaterialTextInputPicker_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_androidx_fragment_app_FragmentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_androidx_core_app_ComponentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_androidx_appcompat_app_AlertDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_androidx_fragment_app_Fragment_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_com_google_android_material_timepicker_MaterialTimePicker_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Dex2C.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Compile++ : nc <= Java_com_google_android_material_datepicker_MaterialStyledDatePickerDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= well_known_classes.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_com_google_android_material_datepicker_MaterialDatePicker_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_androidx_activity_ComponentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_androidx_fragment_app_DialogFragment_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_androidx_appcompat_app_AppCompatDelegateImpl_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_com_google_android_material_datepicker_MaterialCalendar_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_androidx_appcompat_app_AppCompatDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_com_google_android_material_bottomsheet_BottomSheetDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_com_google_android_material_datepicker_MaterialTextInputPicker_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_androidx_fragment_app_FragmentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_androidx_core_app_ComponentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_androidx_appcompat_app_AlertDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_androidx_fragment_app_Fragment_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Dex2C.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_com_google_android_material_timepicker_MaterialTimePicker_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] SharedLibrary : libnc.so
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] SharedLibrary : libnc.so
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[armeabi-v7a] Install : libnc.so => libs/armeabi-v7a/libnc.so
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Compile++ : nc <= Java_com_google_android_material_datepicker_MaterialStyledDatePickerDialog_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[arm64-v8a] Install : libnc.so => libs/arm64-v8a/libnc.so
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] SharedLibrary : libnc.so
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
make: Entering directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
[x86] Install : libnc.so => libs/x86/libnc.so
make: Leaving directory 'C:/Users/Vink/AppData/Local/Temp/dcc-project-t2t5vu3z'
I: Using Apktool 2.5.0 on app-debug.apk
I: Copying raw resources...
I: Baksmaling classes.dex...
I: Baksmaling classes3.dex...
I: Baksmaling classes2.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
I: Using Apktool 2.5.0
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes2 folder into classes2.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes3 folder into classes3.dex...
I: Checking whether resources has changed...
I: Copying raw resources...
I: Copying libs... (/lib)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk...
[INFO ] dcc: signing C:\Users\Vink\AppData\Local\Temp\tmpi6kolp0y-unsigned.apk -> .\app-debug1.apk
[INFO ] dcc: removing C:\Users\Vink\AppData\Local\Temp\dcc-project-t2t5vu3z
[INFO ] dcc: removing C:\Users\Vink\AppData\Local\Temp\tmpvbpasz9w-dcc
[INFO ] dcc: removing C:\Users\Vink\AppData\Local\Temp\dcc-apktool-rux8zg5r
[INFO ] dcc: removing C:\Users\Vink\AppData\Local\Temp\tmpi6kolp0y-unsigned.apk
PS C:\Users\Vink\Desktop\dcc-master> adb uninstall com.a_a
Success
PS C:\> adb install .\app-debug1.apk
Performing Streamed Install
adb: failed to install .\app-debug1.apk: Failure [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]
PS C:\Users\Vink\Desktop\dcc-master> adb shell cat cat /proc/cpuinfo
adb server version (31) doesn't match this client (41); killing...
* daemon started successfully
cat: cat: No such file or directory
Processor : AArch64 Processor rev 4 (aarch64)
processor : 0
BogoMIPS : 38.40
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
Traceback (most recent call last):
File "dcc.py", line 450, in
dcc_cfg = json.load(fp)
File "D:\Python\lib\json_init_.py", line 293, in load
return loads(fp.read(),
File "D:\Python\lib\json_init_.py", line 357, in loads
return _default_decoder.decode(s)
File "D:\Python\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "D:\Python\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Invalid \escape: line 3 column 19 (char 56)
1.fh = open('filename', 'w', encoding='utf-8')
指定下默认编码 windows下默认是gbk 全报错
2.有个依赖没写出来 ans1crypro (很讨厌这个数字1)
我想问一下,这个可不可以使用OLLVM来编译呢?
如果可以的话,那应该如何实现呢?
adb: failed to install out.apk: Failure [-124: Failed parse during installPackageLI: Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte boundary]
正在做一个相关的项目,发现频繁的deletelocalref导致运行速度十分慢,想了解一下你有没有什么好的优化方法
C:\Users\Administrator\Desktop\0\dcc>python dcc.py tests/demo-java/app/build/out
puts/apk/debug/app-debug.apk --source-dir=tests/demo-c/app/src/main/ --no-build
Traceback (most recent call last):
File "dcc.py", line 14, in
from androguard.core.analysis import analysis
File "C:\Users\Administrator\Desktop\0\dcc\androguard\core\analysis\analysis.p
y", line 8, in
from androguard.core.bytecodes import dvm
File "C:\Users\Administrator\Desktop\0\dcc\androguard\core\bytecodes\dvm.py",
line 8, in
from androguard.core.bytecodes.apk import APK
File "C:\Users\Administrator\Desktop\0\dcc\androguard\core\bytecodes\apk.py",
line 7, in
from androguard.util import read, get_certificate_name_string
File "C:\Users\Administrator\Desktop\0\dcc\androguard\util.py", line 1, in
import asn1crypto
ModuleNotFoundError: No module named 'asn1crypto'
nc <= well_known_classes.cpp
jni/nc/Dex2C.cpp: In function 'int64_t d2c_double_to_long(double)':
jni/nc/Dex2C.cpp:75:42: error: 'INT64_MAX' was not declared in this scope
} else if (val > static_cast(INT64_MAX)) {
^
jni/nc/Dex2C.cpp:77:42: error: 'INT64_MIN' was not declared in this scope
} else if (val < static_cast(INT64_MIN)) {
^
jni/nc/Dex2C.cpp: In function 'int64_t d2c_float_to_long(float)':
jni/nc/Dex2C.cpp:89:41: error: 'INT64_MAX' was not declared in this scope
} else if (val > static_cast(INT64_MAX)) {
^
jni/nc/Dex2C.cpp:91:41: error: 'INT64_MIN' was not declared in this scope
} else if (val < static_cast(INT64_MIN)) {
^
jni/nc/Dex2C.cpp: In function 'int32_t d2c_double_to_int(double)':
jni/nc/Dex2C.cpp:103:41: error: 'INT32_MAX' was not declared in this scope
} else if (val > static_cast(INT32_MAX)) {
^
jni/nc/Dex2C.cpp:105:41: error: 'INT32_MIN' was not declared in this scope
} else if (val < static_cast(INT32_MIN)) {
^
jni/nc/Dex2C.cpp: In function 'int32_t d2c_float_to_int(float)':
jni/nc/Dex2C.cpp:117:41: error: 'INT32_MAX' was not declared in this scope
} else if (val > static_cast(INT32_MAX)) {
^
jni/nc/Dex2C.cpp:119:41: error: 'INT32_MIN' was not declared in this scope
} else if (val < static_cast(INT32_MIN)) {
^
make: *** [obj/local/armeabi-v7a/objs/nc/nc/Dex2C.o] Error 1
确认已经配置号环境,报错信息如下:
PS D:\Android_project\dcc\dcc> python dcc.py .\4.6.0.0-mg_debug.apk -o .\4.6.0.0-mg_debug_encrpted.apk
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
[INFO ] androguard.axml: Namespace mapping (109, 513) already seen! This is usually not a problem but could indicate packers or broken AXML compilers.
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[armeabi-v7a] Compile++ thumb: nc <= Java_me_grantland_widget_AutofitHelper_00024AutofitOnLayoutChangeListener_onLayoutChange__Landroid_view_View_2IIIIIIII.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[armeabi-v7a] Compile++ thumb: nc <= well_known_classes.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[armeabi-v7a] Compile++ thumb: nc <= Java_me_grantland_widget_AutofitHelper_00024AutofitTextWatcher_beforeTextChanged__Ljava_lang_CharSequence_2III.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[armeabi-v7a] Compile++ thumb: nc <= Dex2C.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[armeabi-v7a] Compile++ thumb: nc <= Java_me_grantland_widget_AutofitHelper_00024AutofitTextWatcher_onTextChanged__Ljava_lang_CharSequence_2III.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[armeabi-v7a] Compile++ thumb: nc <= Java_me_grantland_widget_AutofitHelper_00024AutofitTextWatcher_afterTextChanged__Landroid_text_Editable_2.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[arm64-v8a] Compile++ : nc <= Java_me_grantland_widget_AutofitHelper_00024AutofitOnLayoutChangeListener_onLayoutChange__Landroid_view_View_2IIIIIIII.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[arm64-v8a] Compile++ : nc <= well_known_classes.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[arm64-v8a] Compile++ : nc <= Java_me_grantland_widget_AutofitHelper_00024AutofitTextWatcher_beforeTextChanged__Ljava_lang_CharSequence_2III.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[arm64-v8a] Compile++ : nc <= Java_me_grantland_widget_AutofitHelper_00024AutofitTextWatcher_afterTextChanged__Landroid_text_Editable_2.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[arm64-v8a] Compile++ : nc <= Dex2C.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[arm64-v8a] Compile++ : nc <= Java_me_grantland_widget_AutofitHelper_00024AutofitTextWatcher_onTextChanged__Ljava_lang_CharSequence_2III.cpp
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[armeabi-v7a] SharedLibrary : libnc.so
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[arm64-v8a] SharedLibrary : libnc.so
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[armeabi-v7a] Install : libnc.so => libs/armeabi-v7a/libnc.so
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
make: Entering directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
[arm64-v8a] Install : libnc.so => libs/arm64-v8a/libnc.so
make: Leaving directory 'C:/Users/MG/AppData/Local/Temp/dcc-project-8ioohy0n'
Apktool v1.4.10.f53a296 - a tool for reengineering Android apk files
Copyright 2010 Ryszard Wi?niewski [email protected]
with smali v1.3.4-dev, and baksmali v1.3.4-dev
Updated by iBotPeaches (@iBotPeaches) and yyj
Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
Usage: apktool [-q|--quiet OR -v|--verbose] COMMAND [...]
COMMANDs are:
d[ecode] [OPTS] <file.apk> [<dir>]
Decode <file.apk> to <dir>.
OPTS:
-s, --no-src
Do not decode sources.
-r, --no-res
Do not decode resources.
-d, --debug
Decode in debug mode. Check project page for more info.
-f, --force
Force delete destination directory.
-t <tag>, --frame-tag <tag>
Try to use framework files tagged by <tag>.
--keep-broken-res
Use if there was an error and some resources were dropped, e.g.:
"Invalid config flags detected. Dropping resources", but you
want to decode them anyway, even with errors. You will have to
fix them manually before building.
b[uild] [OPTS] [<app_path>] [<out_file>]
Build an apk from already decoded application located in <app_path>.
It will automatically detect, whether files was changed and perform
needed steps only.
If you omit <app_path> then current directory will be used.
If you omit <out_file> then <app_path>/dist/<name_of_original.apk>
will be used.
OPTS:
-f, --force-all
Skip changes detection and build all files.
-d, --debug
Build in debug mode. Check project page for more info.
if|install-framework <framework.apk> [<tag>]
Install framework file to your system.
For additional info, see: http://code.google.com/p/android-apktool/
[ERROR ] dcc: Compile .\4.6.0.0-mg_debug.apk failed!
Traceback (most recent call last):
File "dcc.py", line 463, in
dcc_main(infile, filtercfg, outapk, do_compile, project_dir, source_archive)
File "dcc.py", line 415, in dcc_main
decompiled_dir = ApkTool.decompile(apkfile)
File "dcc.py", line 69, in decompile
subprocess.check_call(['java', '-jar', APKTOOL, 'd', '-r', '-f', '-o', outdir, apk])
File "C:\Users\MG\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['java', '-jar', 'tools/apktool.jar', 'd', '-r', '-f', '-o', 'C:\Users\MG\AppData\Local\Temp\dcc-apktool-3b3rspqa', '.\4.6.0.0-mg_debug.apk']' returned non-zero exit status 1.
[INFO ] dcc: removing C:\Users\MG\AppData\Local\Temp\dcc-project-8ioohy0n
[INFO ] dcc: removing C:\Users\MG\AppData\Local\Temp\tmp3sh89t9x-dcc
[INFO ] dcc: removing C:\Users\MG\AppData\Local\Temp\dcc-apktool-3b3rspqa
PS D:\Android_project\dcc\dcc>
File "dcc.py", line 428, in
dcc_cfg = json.load(fp)
File "F:\python3\lib\json_init_.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "F:\python3\lib\json_init_.py", line 348, in loads
return _default_decoder.decode(s)
File "F:\python3\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "F:\python3\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Invalid \escape: line 3 column 19 (char 56)
[ERROR ] dcc: Compile 4.apk failed!
Traceback (most recent call last):
File "dcc.py", line 463, in
dcc_main(infile, filtercfg, outapk, do_compile, project_dir, source_archive)
File "dcc.py", line 388, in dcc_main
compiled_methods, errors = compile_dex(apkfile, filtercfg)
File "dcc.py", line 349, in compile_dex
method_filter = MethodFilter(filtercfg, d)
File "dcc.py", line 111, in init
self._load_filter_configure(configure)
File "dcc.py", line 133, in _load_filter_configure
self._compile_filters.append(re.compile(line))
File "/usr/lib/python3.6/re.py", line 233, in compile
return _compile(pattern, flags)
File "/usr/lib/python3.6/re.py", line 301, in _compile
p = sre_compile.compile(pattern, flags)
File "/usr/lib/python3.6/sre_compile.py", line 562, in compile
p = sre_parse.parse(p, flags)
File "/usr/lib/python3.6/sre_parse.py", line 855, in parse
p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
File "/usr/lib/python3.6/sre_parse.py", line 416, in _parse_sub
not nested and not items))
File "/usr/lib/python3.6/sre_parse.py", line 502, in _parse
code = _escape(source, this, state)
File "/usr/lib/python3.6/sre_parse.py", line 401, in _escape
raise source.error("bad escape %s" % escape, len(escape))
sre_constants.error: bad escape \L at position 15
请问如何解决?
filter.txt 如下:
!<clinit|init>
!bigGoto
#.TestCompiler.
!.Util
!./Lambda
.Activity.
.;onCreate(Landroid/os/Bundle;.
#.*
我是想把我所有的包含Activity的类中的方法都加固,奈何总是有这种错误
报错信息如下:
make: *** No rule to make target 'jni/nc/Java_com_xk_ssan_zuty_module_share_ui_dialog_GoodShareMainPicDialog_createDialog__Landroid_app_Activity_2Ljava_util_List_2Lcom_xk_ssan_zuty_module_share_util_SharePainter_2JILjava_lang_String_2.cpp', needed by 'obj/local/armeabi-v7a/objs/nc/nc/Java_com_xk_ssan_zuty_module_share_ui_dialog_GoodShareMainPicDialog_createDialog__Landroid_app_Activity_2Ljava_util_List_2Lcom_xk_ssan_zuty_module_share_util_SharePainter_2JILjava_lang_String_2.o'. Stop.
make: *** Waiting for unfinished jobs....
[ERROR ] dcc: Compile .\4.6.0.0-mg_debug.apk failed!
Traceback (most recent call last):
File "dcc.py", line 453, in
dcc_main(infile, filtercfg, outapk, do_compile, project_dir, source_archive)
File "dcc.py", line 402, in dcc_main
build_project(project_dir)
File "dcc.py", line 88, in build_project
subprocess.check_call([NDKBUILD, '-j%d' % cpu_count(), '-C', project_dir])
File "C:\Users\MG\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['D:/sdk/sdk/ndk/21.0.6113669\ndk-build.cmd', '-j4', '-C', 'C:\Users\MG\AppData\Local\Temp\dcc-project-ckszrydl']' returned non-zero exit status 2.
[INFO ] dcc: removing C:\Users\MG\AppData\Local\Temp\dcc-project-ckszrydl
[INFO ] dcc: removing C:\Users\MG\AppData\Local\Temp\tmpj0cq2jis-dcc
PS D:\Android_project\dcc\dcc>
处理前的smali
.method public print()V
.registers 10
.annotation runtime Landroid/webkit/JavascriptInterface;
.end annotation
.annotation runtime Lqinlili/Dex2C;
.end annotation
const-string v1, "正在准备打印..."
const/4 v2, 0x0
invoke-static {p0, v1, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v1
invoke-virtual {v1}, Landroid/widget/Toast;->show()V
iget-object v3, p0, Lqinlili/Saya/Saya;->w:Landroid/webkit/WebView;
new-instance v0, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
new-instance v1, Lqinlili/Saya/Saya$WebPrint;
invoke-direct {v1, p0, v3}, Lqinlili/Saya/Saya$WebPrint;-><init>(Landroid/app/Activity;Landroid/webkit/WebView;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
处理后变成
.method public native print()V
.end method
网页js调用失效
必须自己手动修改成
.method public native print()V
.annotation runtime Landroid/webkit/JavascriptInterface;
.end annotation
.end method
这样才能生效
pip install asn1crypto
结果是没装到.
apk被处理过后,安装的时候失败
Failure [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]
今天测试DCC ,无意中发现它在多dex情况下 ,只处理classes.dex , 不处理classes2.dex ,classes3.dex等dex
测试环境:
ndk-r16b(测试过 , 正常使用)
APP_ABI := armeabi
filter.txt我没瞎改 ,只写了测试类的类名 , 不匹配构造器, 别的每行都注释了
我测试的类 ,1个在classes2.dex , 1个在classes3.dex , 没测试classes.dex类的方法.
DCC输出: [INFO ] dcc: no compiled methods
然后 , 我将classes2.dex和classes.dex名字互换 ,能处理在classes2.dex的那个测试类 , 此时, 仍然没有处理classes3.dex的那个测试类.
然后 , 我将原apk的classes3.dex和classes.dex名字互换 ,能处理在classes3.dex的那个测试类 , 此时, 仍然没有处理classes2.dex的那个测试类.
总结: 在多dex情况下 ,DCC只处理classes.dex
如果需要我测试的apk , 我稍后补上链接.
请大佬核查一下 , 是否有这个bug
按照README.MD配置好后,执行
root@localhost:/****/Dex2C# python3.7 dcc.py t.apk -o o.apk
运行结果
[ERROR ] dcc: Compile t.apk failed!
Traceback (most recent call last):
File "dcc.py", line 370, in <module>
dcc(infile, filtercfg, outapk, do_compile, project_dir, source_archive)
File "dcc.py", line 330, in dcc
os.rename(src_zip, source_archive)
OSError: [Errno 18] Invalid cross-device link: '/tmp/tmplal_8cse-dcc.zip' -> 'project-source.zip'
[INFO ] dcc: removing /tmp/dcc-project-hlpqh92y
[INFO ] dcc: removing /tmp/tmplal_8cse-dcc
Python 3.7.3
Ubuntu 19.04 on Termux 0.74
我看了下只是简单的单行语句的dex2c 感觉少了点,怎么处理一下啊,for if嵌套的语句如何支持呢?
C:\Users\Slimakoi\Desktop\amimo\dcc>python dcc.py app.apk -o out.apk
[WARNING ] androguard.core.api_specific_resources: Requested API level 29 is larger than maximum we have, returning API level 28 instead.
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_c0_b_c_n_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_androidx_activity_ComponentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_c0_h_b_i_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_android_gms_ads_AdActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_android_gms_common_api_GoogleApiActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_firebase_auth_internal_GenericIdpActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_firebase_auth_internal_RecaptchaActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_c0_k_a_i_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_google_android_gms_auth_api_signin_internal_SignInHubActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_tapjoy_TJContentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= well_known_classes.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_d0_d_a_c_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_slimakoi_aminox_EditTitlesActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_slimakoi_aminox_CommunitySelectorActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_androidx_activity_ComponentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_c0_b_c_n_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_tapjoy_TJAdUnitActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_c0_h_b_i_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Dex2C.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_c0_b_c_m_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_c0_k_a_i_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_google_android_gms_ads_AdActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_google_firebase_auth_internal_GenericIdpActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_slimakoi_aminox_InformationActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Dex2C.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_google_android_gms_auth_api_signin_internal_SignInHubActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_google_android_gms_common_api_GoogleApiActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_google_firebase_auth_internal_RecaptchaActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_slimakoi_aminox_ActionSelectorActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_tapjoy_TJContentActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= well_known_classes.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_d0_d_a_c_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_slimakoi_aminox_EditTitlesActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_c0_b_c_m_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_slimakoi_aminox_CommunitySelectorActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_tapjoy_TJAdUnitActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Compile++ thumb: nc <= Java_com_slimakoi_aminox_MainActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_slimakoi_aminox_InformationActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_slimakoi_aminox_ActionSelectorActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] SharedLibrary : libnc.so
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[armeabi-v7a] Install : libnc.so => libs/armeabi-v7a/libnc.so
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Compile++ : nc <= Java_com_slimakoi_aminox_MainActivity_onCreate__Landroid_os_Bundle_2.cpp
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] SharedLibrary : libnc.so
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
fcntl(): Bad file descriptor
make: Entering directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
[arm64-v8a] Install : libnc.so => libs/arm64-v8a/libnc.so
make: Leaving directory 'C:/Users/Slimakoi/AppData/Local/Temp/dcc-project-muw1y3yx'
I: Using Apktool 2.4.0 on app.apk
I: Copying raw resources...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
[ERROR ] dcc: Compile app.apk failed!
Traceback (most recent call last):
File "dcc.py", line 463, in <module>
dcc_main(infile, filtercfg, outapk, do_compile, project_dir, source_archive)
File "dcc.py", line 417, in dcc_main
copy_compiled_libs(project_dir, decompiled_dir)
File "dcc.py", line 242, in copy_compiled_libs
raise Exception("ABI %s is not supported!" % abi)
Exception: ABI x86 is not supported!
[INFO ] dcc: removing C:\Users\Slimakoi\AppData\Local\Temp\dcc-project-muw1y3yx
[INFO ] dcc: removing C:\Users\Slimakoi\AppData\Local\Temp\tmp9c5gz5bs-dcc
[INFO ] dcc: removing C:\Users\Slimakoi\AppData\Local\Temp\dcc-apktool-aw0m7wzb
是正则表达式和注解都要一起用吗
可以只单用注解吗?
基本确定是引用不到android/什么的才不能转 可请大大教下吗 (我知道不符版 但网上的方法几乎试过了)
报这个错 no compiled methods
不支持apk里的多dex同时转换,希望大佬能支持下
你好我看了你代码,但是我找不到TSSA -> CSSA 这一步的逻辑在哪,能给我标注下吗。
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
xxxxxxxxxxxxxxx
}
});
将如上代码如果写在方法里,如onCreate,转换后其实未实现onClick
把 copy_compiled_libs() 的 最後幾行 修改為
for sofile in os.listdir(src):
libnc = os.path.join(src, sofile)
shutil.copy(libnc, dst)
#libnc = os.path.join(src, LIBNATIVECODE)
#shutil.copy(libnc, dst)
jni/nc/Dex2C.h:28:91: note: expanded from macro 'D2C_RESOLVE_FIELD'
if (cached_field == NULL && d2c_resolve_field(env, &cached_class, &cached_field, false, class_name, field_name...
^~~~~~~~~~
159 warnings generated.
[armeabi-v7a] SharedLibrary : libnc.so
159 warnings generated.
[arm64-v8a] SharedLibrary : libnc.so
[armeabi-v7a] Install : libnc.so => libs/armeabi-v7a/libnc.so
[arm64-v8a] Install : libnc.so => libs/arm64-v8a/libnc.so
make: Leaving directory 'C:/Users/70500/AppData/Local/Temp/dcc-project-ocgs4lpv'
I: Using Apktool 2.6.1 on your_app.apk
I: Copying raw resources...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
[ERROR ] dcc: Compile your_app.apk failed!
Traceback (most recent call last):
File "C:\Users\70500\Desktop\dcc\dcc.py", line 463, in
dcc_main(infile, filtercfg, outapk, do_compile, project_dir, source_archive)
File "C:\Users\70500\Desktop\dcc\dcc.py", line 416, in dcc_main
native_compiled_dexes(decompiled_dir, compiled_methods)
File "C:\Users\70500\Desktop\dcc\dcc.py", line 316, in native_compiled_dexes
native_class_methods(smali_path, compiled_methods)
File "C:\Users\70500\Desktop\dcc\dcc.py", line 282, in native_class_methods
line = next_line()
File "C:\Users\70500\Desktop\dcc\dcc.py", line 250, in next_line
return fp.readline()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbb in position 131: illegal multibyte sequence
[INFO ] dcc: removing C:\Users\70500\AppData\Local\Temp\dcc-project-ocgs4lpv
Traceback (most recent call last):
File "C:\Users\70500\Desktop\dcc\dcc.py", line 467, in
clean_temp_files()
File "C:\Users\70500\Desktop\dcc\dcc.py", line 60, in clean_temp_files
shutil.rmtree(name)
File "D:\DATA\汇编\Python\lib\shutil.py", line 747, in rmtree
return _rmtree_unsafe(path, onerror)
File "D:\DATA\汇编\Python\lib\shutil.py", line 612, in _rmtree_unsafe
_rmtree_unsafe(fullname, onerror)
File "D:\DATA\汇编\Python\lib\shutil.py", line 612, in _rmtree_unsafe
_rmtree_unsafe(fullname, onerror)
File "D:\DATA\汇编\Python\lib\shutil.py", line 612, in _rmtree_unsafe
_rmtree_unsafe(fullname, onerror)
[Previous line repeated 3 more times]
File "D:\DATA\汇编\Python\lib\shutil.py", line 617, in _rmtree_unsafe
onerror(os.unlink, fullname, sys.exc_info())
File "D:\DATA\汇编\Python\lib\shutil.py", line 615, in _rmtree_unsafe
os.unlink(fullname)
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'C:\Users\70500\AppData\Local\Temp\dcc-project-ocgs4lpv\obj\local\arm64-v8a\objs\nc\nc\Java_com_e4a_runtime_components_impl_android__0767d_06d6a_05148_068ee_04e36_1_0652f_04ed8_09009_062e9_05bf9_08bdd_06846_07c7b_05e93_PayDialog_onCreate__Landroid_os_Bundle_2.o'
DCC是个很棒的开源项目,但我体验了一下,发现了一些小问题。
如果作者大大有时间的话,请帮忙解惑一下,感激。ヾ(=・ω・=)o
昨晚用ubuntu编译测试demo,测试成功。
今天用windows10编译,就报错了。
各种系统环境已经配置好,NDK r17c,默认pthon3.7。
python dcc.py tests\demo-java\app\build\outputs\apk\debug\app-debug.apk --source-dir=tests\demo-c\app\src\main\ --no-build
输出信息:
Traceback (most recent call last):
File "dcc.py", line 435, in
dcc_cfg = json.load(fp)
File "D:\python\lib\json_init_.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "D:\python\lib\json_init_.py", line 348, in loads
return _default_decoder.decode(s)
File "D:\python\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "D:\python\lib\json\decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Invalid \escape: line 2 column 19 (char 20)
查看dcc.cfg
按照网友给的方法,将json.load(fp)改为json.load(fp, strict=False),没有用。
尝试加上转义符
能够正常编译。
大佬,这算bug吗?哭笑
以及apk安装后,一运行就闪退。
这个,我想了下,我是直接用dcc.py处理apk,没有加载Native库。
emmmm,是这个原因吗?
是不是先通过反编译,把加载Native库的smali代码添加到合适的位置,再回编译,然后用dcc.py处理apk?
我都怀疑我是bug聚合体质了,苦笑。
还有几个小疑问:
1.Android studio生成的签名文件是.jks
后缀名,dcc修改哪里,使其自动使用我提供的jks文件进行签名呢?
2.我看大佬你的py中,对filter.txt的处理:
以换行符分隔,#
代表注释,!
代表不编译后面的类,=
代表编译=后面的类(不使用正则),句首没有符号代表编译这一行?是这个意思吗?
3.filter.txt里面有下面一段文本:
# do not compile constructor
!<clinit|init>
这代表着DCC其实是处理相关smali代码,而非java代码?
且DCC是根据方法名的smali代码只处理方法,不处理其他(变量等等)?
4.如果我打算编译的方法内部调用了我禁止编译的方法(举个例子:我禁止编译谷歌gson相关类,但我打算编译的方法内部调用了gson),DCC是如何处理的呢?
5.如果只想编译某个类的特定的那个方法,是不是只要填写那个方法名
对应的smali代码?
如果只想编译某个类全部方法,只需要填写那个方法类对应的smali代码?
6.能否提供编译其他架构so的接口,就是默认只编译arm的so,通过传参,额外编译指定so?
7.filter.txt里面有下面一段文本:
# compile method named onCreate, mostly activity's onCreate
.*;onCreate\(Landroid/os/Bundle;.*
onCreate(Landroid/os/Bundle;我知道,但前面的.*;
是什么意思?
我没看明白,我反编译了一个apk,它是这样子的:
我深深地困惑着。
小疑问不回答也没关系,处理上面的bug比较重要。
最后,非常感谢大佬的DCC,晚安~~~
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.