FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[Original HTTPS Page]
2beNo2/android-pack: study android pack · GitHub
2beNo2
/
android-pack
Public
Notifications
You must be signed in to change notification settings
Fork
8
Star
12
Code
Issues
0
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Branches
Tags
Open more actions menu
Latest commit
History
20 Commits
20 Commits
Folders and files
Name
Name
Last commit message
Last commit date
AndroidPack1
AndroidPack1
AndroidPack2
AndroidPack2
AndroidPack3
AndroidPack3
DexVmp
DexVmp
.gitignore
.gitignore
README.md
README.md
Repository files navigation
README
android-pack
学习Android的加壳技术
AndroidPack1:
Android的第一代壳
使用DexClassLoader加载dex文件
替换掉当前虚拟机的ClassLoader,因其保存了对应的DexFile
缺点:
因DexClassLoader的构造函数中需指定dex文件的路径
故对文件I/O进行监控,便能获取到目标dex文件
解决办法:
寻找文件不落地的dex加载方式
AndroidPack2:
Android的第二代壳
解决了一代壳中的文件落地问题
通过调用OpenMemory,将内存中的dex文件加载到虚拟机
缺点:
内存中会保存完整的dex文件
使用内存dump即可脱壳
解决办法:
避免内存dump,破坏dex文件在内存中的完整性
AndroidPack3:
Android的第三代壳
缓解了二代壳中的内存dump问题,即破坏dex文件在内存中的完整性
大致实现思路:
抽取目标函数的codeItem,将其额外保存
禁用art虚拟机的dex2oat优化流程,主要hookexecve方法实现
hook虚拟机的LoadMethod方法,在函数调用时将codeItem修复
缺点:
仍然无法完全解决内存dump的问题
因dex字节码最终还是要交给art虚拟机解析执行,修改系统源码即可还原dex字节码
解决办法:
自实现art虚拟机,强迫逆向者逆向native层代码
DexVmp:
DexVmp的简单demo
缺点:
无法模拟实现jni的API
因此对jni方法进行监控,即可了解方法的大致实现
About
study android pack
Resources
Readme
Activity
Stars
12
stars
Watchers
2
watching
Forks
8
forks
Report repository
Releases
Packages
Contributors
Languages
Back
|
FazBrowse Home
|
New Git URL