1.UPX ShellEx V1.0 RC9版权信息
2.app安全之反编译(一)
3.Android app的通用脱壳加壳和脱壳详解
UPX ShellEx V1.0 RC9版权信息
UPX Shell内置UPX解压缩引擎版本:UPX 1. for Win console version,版权归Markus Oberhumer & Laszlo Molnar所有;UPX通用脱壳机参考Bratalarm的Generic Unpacker For UPX源码及yOda的AspackDie源码;优化PE映象功能模块采用y0da()的PE realign引擎;UPX Shell v0.为UPX ShellEx的上一个版本,新版本里改名为UPX ShellEx,源码新旧版本版权均归dREAMtHEATER所有。通用脱壳
app安全之反编译(一)
以往安全研究者关注的源码多是移动应用的本地安全,例如远程控制、通用脱壳应用破解及信息窃取等,源码thinkphp答题网站源码然而忽视了服务端安全。通用脱壳服务端的源码安全问题普遍存在,如SQL注入、通用脱壳文件上传、源码中间件或服务器漏洞等。通用脱壳移动应用通过web API服务与服务端交互,源码这种模式将移动安全与web安全紧密相连。通用脱壳然而,源码开源手写源码部分应用不直接嵌入网页,通用脱壳而是通过API接口返回JSON数据,这使得扫描器和爬虫无法获取链接。
在iOS系统中,由于无法进行反编译,安全专家通常借助反汇编工具,如IDA,来分析应用逻辑。对于已越狱的iOS设备,IDA、classdump等工具可以辅助进行分析。在Android系统中,应用反编译则更为常见,autoit函数源码通常使用apktool、dex2jar和jd-gui等工具。为了检测Android应用的安全性,通常会先判断是否被加壳,之后尝试脱壳并反编译代码,结合上下文分析代码位置,有时还需进行动态调试。
以下是针对应用反编译的一般思路及工具使用方法:
脱壳通常使用DexHunter,这是一款用于通用自动脱壳的Android工具,由大牛zyqqyz于年下半发表在看雪论坛,详情见《Android dex文件通用自动脱壳器》。接下来是反编译流程:
1. 使用apktool将APK文件反编译成源代码、、钢材erp源码XML配置、语言资源等文件。下载apktool,解压后得到三个文件:aapt.exe、apktool.bat、apktool.jar。将待反编译的APK文件放入指定目录,打开命令行界面输入命令:apktool.bat d -f test.apk test(test.apk为APK文件全名,test为输出文件夹名称)。执行后会在指定文件夹生成反编译资源。
2. 若要将反编译的文件重新打包成APK,可输入命令:apktool.bat b test(test为编译文件夹)。执行后在指定文件夹下会生成build和dist文件夹,如花商城源码dist中存放着打包后的APK文件。
3. 反编译得到的Java源代码可通过dex2jar和jd-gui工具进一步分析。将classes.dex文件解压并转换为jar文件,然后使用jd-gui打开查看源码。
4. 对于混淆过的应用,类文件名称和方法名称会以a、b、c等样式命名,需要仔细分析。
为了简化反编译过程,还提供了图形化工具,如Androidfby。使用该工具进行APK反编译更为直观方便。
在进行APK修改时,了解未加密资源的修改方法至关重要。非res文件夹下的资源及res中的可直接解压缩修改。具体操作包括解压缩APK包、修改指定文件、删除签名文件夹、重新打包并签名后安装。
为确保分享的资源与工具的时效性与实用性,我运营着一个公众号,每日分享安全资料与工具,欢迎关注。
Android app的加壳和脱壳详解
了解Android应用的加壳与脱壳技术,我们首先需要理解APK文件结构与DEX文件原理。APK文件是Android应用的压缩包格式,解压后包含dex文件,这是Dalvik虚拟机执行的字节码文件。Zygote作为虚拟机进程,每次启动应用时生成子进程执行该应用。加壳技术在二进制程序中植入代码,加密、隐藏或混淆原始内容,以防止反编译。加壳后的APK在运行时,首先解压并获取编译信息,运行加密的DEX文件。
实现加壳,主要是为保护内容加密、隐藏或混淆,使得反编译难以直接获取原始代码。脱壳则是反过程,目标是恢复原始代码。脱壳需要解压并定位到真实DEX文件,通常是在解密后执行脱壳,然后dump出明文状态的DEX文件。实现脱壳的关键是获取解密后DEX文件的起始地址与大小。
常用脱壳方法包括基于Frida的工具,如Frida-Dexdump,帮助定位并dump脱壳后的DEX文件。此工具需要配合frida-server在模拟器或手机上运行,并利用frida-ps查看目标应用。接着通过指定应用包名调用Frida-Dexdump工具进行脱壳。脱壳后的文件可能需要通过合并工具(如jadx)整合为一个文件,并最终使用如jd-gui进行查看。另外,Fart、Youpk、BlackDex等工具也提供了不同的脱壳解决方案,覆盖了不同条件与需求,包括修改Android源码、基于ART的主动调用、无需root的脱壳等。
每种脱壳工具都有其优势与局限性,如Frida-Dexdump与Frida环境结合简单,但可能受限于目标应用的具体保护方式;Fart与Youpk则需要特定条件与环境,但提供了更强大的脱壳能力;BlackDex则以其简便易用、无需root等特性,成为一种通用脱壳工具。然而,无论使用何种脱壳工具,都需要基于深入理解DEX文件结构与保护机制,以及对特定工具的特性与使用方法的掌握。