efaker / fakerandroid Goto Github PK
View Code? Open in Web Editor NEWA tool translate a apk file to common android project and support so hook include il2cpp c++ scaffolding
License: MIT License
A tool translate a apk file to common android project and support so hook include il2cpp c++ scaffolding
License: MIT License
lua 没有hook的思路
初步判断应该是没有字符串结束符【\0】但是加上结束符。问题依旧
请问下作者你有什么解决办法吗?
if(strcmp(t,"不法世界")==0){//这个不法世界感觉是个敏感词,发布渠道的话过审有问题,所以修改一下
Text_set_text(__this, value,method);
MonoString *ms = coverChar2Il2cppString("完美世界");
Text_set_text(__this, reinterpret_cast<String *>(ms), method);
return;
}
Hey, will the support for metadata version 29 be implemented? Also if not, could we implement something like that?
请问下fakerandroid-gradle工程可以来源学习吗?
com.fakerandroid.tools.build:gradle
可以直接把smali转换为Java代码吗?针对没有壳的app,直接还原成Java代码。
libtool.a Can it be open sourced?
发现一个bug,在使用FakerAndroid进行hook,只要包名包括.字符长度超过41个,即baseImageAddr获取不到libil2cpp.so地址,返回0导致程序奔溃,目前在android 11 和android 12发现此问题
如图,24.4的报错应该是一个bug,在我测试过程中,有些24.4的是可以解的,有些则不可以。
Il2CppInspector已经有支持24.4的修复的分支了,能同步到fakerandroid吗?
已修复24.4的分支:https://github.com/Kneesnap/Il2CppInspector
W: Could not decode attr value, using undecoded value instead: ns=android, name=name, value=0x0000002e
当我传入一个起始地址的address后,我却无法调用原有funcation ,这让我很苦恼啊
H:\Giant Rush!_1.7.0_Apkpure.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Users\tianhou\AppData\Local\apktool\framework\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values / XMLs...
I: Copying raw classes.dex file...
I: Copying raw classes2.dex file...
I: Copying raw classes3.dex file...
I: Copying raw classes4.dex file...
I: Copying raw classes5.dex file...
I: Copying raw classes6.dex file...
I: Copying raw classes7.dex file...
I: Copying raw assets/audience_network.dex file...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
I: Copying META-INF/services directory
I: Translating dexes to smali files....
I: Translating dexes to java scaffodding jar....
I: Checking or generating il2cppscafoding...
I: il2cpp
I: Version 2021.1
I:
I:
I: Extracting metadata from (archive)\assets/bin/Data/Managed/Metadata/global-metadata.dat
W: The supplied metadata file is not of a supported version (29).
W: File global-metadata.dat does not exist
I: Analyze IL2CPP data: 1.00 sec
I: Rumtime base mereging...
I: Android studio project fomarting....
I: You have faked a android studio project from apk!
I: Generated project path:h:\GiantRush_FA.
I: No matches in symbol table
I: Required structures acquired from code heuristics. Initialization function: 0x00000000007D90AC
I: CodeRegistration struct found at 0x000000000206BB80 (file offset 0x0205BB80)
I: MetadataRegistration struct found at 0x000000000206C0E8 (file offset 0x0205C0E8)
W: The detected Il2CppCodeRegistration / Il2CppMetadataRegistration structs do not pass validation. This may mean that their fields have been re-ordered as a form of obfuscation and Il2CppInspector has not been able to restore the original order automatically. Consider re-ordering the fields in Il2CppBinaryClasses.cs and try again.
导出时候的日志
il2cpp是2021的版本,解包提示 No Match in symbol table,是不是2021的版本没有适配呀,可以适配一下吗?大佬
有的应用 编译不能正常回编,smail 2 dex 失败。 要怎么解决。看不懂你的 com.fakerandroid.tools.build:gradle:1.0.32 里面的源码。
应用包名 :com.ss.android.jumanji
应用名 :抖音盒子
应用版本 :抖音盒子 1.3.0 正常新版。
AGPBI: {"kind":"error","text":"java.lang.NullPointerException","sources":[{}],"tool":"D8"}
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:132)
at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:119)
at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:102)
at com.android.build.gradle.internal.tasks.DexMergingTaskRunnable.run(DexMergingTask.kt:436)
at com.android.build.gradle.internal.tasks.Workers$ActionFacade.run(Workers.kt:242)
at org.gradle.workers.internal.AdapterWorkAction.execute(AdapterWorkAction.java:57)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:67)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:63)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:63)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:409)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:399)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:157)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:242)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:150)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:94)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:60)
at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:200)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
at Version.fakeStackEntry(Version_2.1.62.java:0)
at com.android.tools.r8.utils.Y.a(SourceFile:78)
at com.android.tools.r8.D8.run(D8.java:11)
at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:117)
... 33 more
Caused by: java.lang.NullPointerException
at com.android.tools.r8.dex.A.a(SourceFile:398)
at com.android.tools.r8.graph.W.a(SourceFile:543)
at com.android.tools.r8.dex.b.a(SourceFile:330)
at com.android.tools.r8.graph.V0.b(SourceFile:4)
at com.android.tools.r8.graph.W0.a(SourceFile:3)
at com.android.tools.r8.graph.U0.d(SourceFile:3)
at com.android.tools.r8.graph.W0.a(SourceFile:1)
at com.android.tools.r8.graph.V0.b(SourceFile:2)
at com.android.tools.r8.graph.C.b(SourceFile:8)
at com.android.tools.r8.dex.b.a(SourceFile:327)
at com.android.tools.r8.dex.b.a(SourceFile:50)
at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1448)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Suppressed: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
at com.android.tools.r8.D8.d(D8.java:143)
at com.android.tools.r8.D8.b(D8.java:1)
at com.android.tools.r8.utils.Y.a(SourceFile:36)
java.lang.NullPointerException
不支持 gradle 7.4?
兼容新版的unity,需要使用新的 i2cpp 工具,所以需要对该项目FakerAndroid 进行二次开发
该项目使用 gradle build -x test 命令编译出的包 FakerAndroid.jar 和发布的FakerAndroid.jar 的结构不一致,不知如何解决
当用Faker反编译了一类游戏项目,然后用AndroidStudio run起来后,就会出现游戏异常。
经过排查,发现问题在于 Faker后的项目,缺失了很多的小class(意思是,原游戏有的一些类,经过Faker打包后就缺失了)。
1、jadx:原游戏,查看所有的类都在,一切都正常。Faker后的apk,查看,很多的类找不到了。
2、AK重打包:将原游戏用AK重打包,一切正常。可以正常运行。
3、Faker打包:将游戏Faker 重打包run起来后,游戏异常。无法正常运行游戏。虽然可以通过技术手段让游戏跑起来,但是又会影响倒游戏的功能。
异常:
AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/yandex/metrica/impl/ob/CD;
AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/yandex/metrica/impl/ob/pu;
其中 CD 和 pu 这些类,原包都正常在的。
我看开始的时候, README写的是Java8,然后后来你重新恢复项目后,直接飙到了Java17,然后我看现在直接提到了Java18。
这个是指Faker支持JDK 18,还是说运行Faker时必须要JDK18。
Faker 调用了 android_id 莫?
dex2jar太久没更新,生成的jar会少很多关键类
Could not determine the dependencies of task ':app:sensitiveDexMergerRelease'.
Cannot query the value of this property because it has no value available.
目前的gradle版本:com.fakerandroid.tools.build:gradle:1.0.38,在有的场景下需要Android的build:gradle插件,请问要如何配置才能让用原生的gradle版本也能功能正常?
很多不能,基本都是资源的问题,没有方向
The supplied metadata file is not of a supported version (29)
近期发现 .aab包 用baseImageAddr("libil2cpp.so") 返回0 大佬能不能提供一下baseImageAddr的代码
在64位手机上:
如果单独使用arm64-v8下的so,可通过偏移地址正常hook函数。
如果单独使用armeabi-v7a下的so,则通过偏移地址hook函数时会崩溃(基址和偏移地址确定无误)。
崩溃日志:A/libc: Fatal signal 4 (SIGILL), code 1, fault addr 0xd44c4548 in tid 21723
测试了多个手机都是同样问题
When I use aab to package and install, the address of the so library will fail to locate, and the hook will not work. Have you encountered this problem? Is there a corresponding solution?
I guess: because of the way aab is packaged, the lib and base code are loaded into two apks, resulting in not being in the same apk. The baseImageAddr provided by fake is not compatible with this problem.
long base = baseImageAddr("libil2cpp.so");
LOGE("baseImageAddr : %ld",base);
the log is:
E/xNative: baseImageAddr : 0
Demo项目打不开,能麻烦发一份到邮件嘛[email protected],谢谢了
it's not letting me apply the device faker part... says i need vip subscription, ive looked and looked and i cant figure out how to get the subscription. ive already paid for the pro apk.
你好,我看之前文档中有demo,但是已经无法打开了,是否有简单的使用教程?比如string转换,fakecpp扩展,常用的方法?
com.android.tools.r8.errors.b: Merging dex file containing classes with prefix 'j$.' with classes with any other prefixes is not allowed.
大佬能升级一下com.fakerandroid.tools.build:gradle:1.0.38吗。支持适配到com.android.tools.build4.2.2以上的?
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.