Android逆向系列--重打包

背景

由于某些情况下需要重打包App,如添加android:debuggable=“true”,注入smali代码等,本文主要探讨重打包的过程及其难点解决方案,比如签名绕过等

技术解析

流程图

在这里插入图片描述

修改AndroidManifest原理分析

由于随意修改资源强行绕过回编译过程,因此可能导致app无法正常运行,此时的思路是,回编译后的apk中的AndroidManifest.xml已经是二进制形式,因此如果直接替换原始APK中的xml即可正常绕过。

  • 资源修正思路: 对于出现错误的item,直接脚本批量删除即可
  • zipalign -p -f -v 4 xx.apk output_unsigned.apk

批量处理错误脚本

import re
import xml.etree.ElementTree as ET


class XmlUtils(object):
	"""docstring for XmlUtils"""
	def __init__(self):
		super(XmlUtils, self).__init__()

	def config(self,xmlPath,ns=None):
		self.path = xmlPath
		self.et = ET.parse(xmlPath)
		self.root = self.et.getroot()
		for pre,uri in ns.items():
			try:
				ET.register_namespace(pre,uri)
			except:
				pass

	def delAttrib(self,node,b):
		try:
			del node.attrib[b]
		except Exception as e:
			pass
		if len(node) > 0:
			for child in node:
				self.delAttrib(child,b)
	
	def getDealKeys(self,node,keys,errorAttrib):
		for x in node.attrib.keys():
			for attr in errorAttrib:
				if attr in x and x not in keys:
					keys.append(x)
		if len(node) ><
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些常用的Android逆向分析工具,它们可以用于反编译、调试、内存分析、Hook等方面: 1. jadx:一款开源的Java反编译工具,可以将Android应用程序的APK文件反编译为Java源代码,方便进行分析和修改。 2. APKTool:一款开源的反编译和打包工具,可以将Android应用程序的APK文件解压为资源文件和代码文件,方便进行修改和打包。 3. Dex2jar:一款用于将Android应用程序的DEX文件转换为JAR文件的工具,可以用于反编译和分析Android应用程序。 4. Frida:一款跨平台的动态插桩工具,可以用于修改应用程序的行为和数据,具有强大的Hook和脚本化功能。 5. Xposed:一款基于Frida的Android插件框架,可以用于Hook应用程序的Java层和Native层代码,实现各种功能。 6. Burp Suite:一款流行的渗透测试工具,可以用于拦截和修改Android应用程序的网络请求和响应,进行漏洞挖掘和安全测试。 7. JD-GUI:一款Java反编译工具,可以将Android应用程序的APK文件反编译为Java源代码,方便进行分析和修改。 8. Android Debug Bridge (ADB):一个调试工具,可以用于与Android设备建立连接,进行调试、文件传输、进程管理等操作。 9. Android Studio:一款集成开发环境,可以用于开发、调试、构建和打包Android应用程序,具有强大的调试和分析功能。 当然,这里列举的只是一些常用的Android逆向分析工具,还有很多其他的工具和库,如IDA Pro、Ghidra、Radare2、JEB等,都可以用于Android逆向分析和漏洞挖掘。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值