0

我想从 hex/dalvik apk 代码中替换一个字符串。我意识到这需要找到字符串从 Android 类项目转换为签名的 apk 文件时如何编码。

这可能吗?好吧,我知道在代码中,一切皆有可能.. 但是这里有人知道怎么做吗?我了解到,可以使用简单的 zip 存档(例如替换 SystemUI.apk 的图标)在 Windows 平台上删除和添加 .apk 文件,而不会破坏 apk .. 但是如何以编程方式进行呢?特别是在python中?

有人对如何做到这一点有任何想法吗?

我努力了:

import zipfile
zf=zipfile.ZipFile('APK.apk') # my zip file
for filename in ['classes.dex']: # zipped file content file
 data=zf.read(filename)
data=data.replace('mystring','newstring') #replace string within the content file
file=open('classes.dex','wb')
file.write(data) # write NEW content file to local disk
file.close()
zin=zipfile.ZipFile('APK.apk','r')       # create zip in and zip out
zout=zipfile.ZipFile('APK.apk','w')      # iterate through zipped contents and
for item in zin.infolist():              # copy all EXCEPT 'classes.dex' content file
  buffer=zin.read(item.filename)
  if (item.filename!='classes.dex'):
    zout.writestr(item,buffer)
zout.close()
zin.close()
zf=zipfile.ZipFile('APK.apk',mode='a')   # finally, add new content file from my local disk
zf.write('classes.dex',arcname='classes.dex')
zf.close()

这将获取原始 APK.apk 文件,并在其中一个压缩内容文件中重写一个字符串,然后将其重新打包回 APK.apk。问题是:ORIGINAL APK.apk = 170 kb NEW APK.apk = 399 kb and NOT INSTALLABLE,apk 被“损坏”,Android 系统不会安装 apk。

4

1 回答 1

0

您不能添加字节数高于原始字符串的字符串。您必须用相同大小的字符串替换特定大小的字符串。试试幸运补丁。它仅替换您 Android 中的字符串。无需将其带到您的电脑上。:-)

于 2014-08-21T09:24:15.823 回答