安卓软件安全初探

破解安卓软件的第一步是了解它的安装包。

安卓软件的安装包是.apk文件,它本质上就是一个将软件各种数据打包起来的压缩文件,把后缀名改为.rar或.zip就可以直接解压。

至于有人问怎么改文件后缀,你可以在一款名为百度的知名搜索软件中找到答案…

可以看到解压出来了一些文件。

其中.dex就是安卓的可执行文件,就类似安卓手机上的exe文件。.xml是一份文档,文件夹里的文件都在这里有登记,然后还包括了主程序(MainActivity)版本号(VersionCode)等破解时要用的信息。其余的这是各种资源等。

但是光这样显然不能对这个软件造成实质性的伤害,于是我们就可以使用Apktool来解析.dex文件。

下载网址:https://ibotpeaches.github.io/Apktool/install/
中间apktool.bat是有些电脑下不了的,直接给代码`@echo off
setlocal
set BASENAME=apktool_
chcp 65001 2>nul >nul

set java_exe=java.exe

if defined JAVA_HOME (
set java_exe="%JAVA_HOME%\bin\java.exe"
)

rem Find the highest version .jar available in the same directory as the script
setlocal EnableDelayedExpansion
pushd “%~dp0”
if exist apktool.jar (
set BASENAME=apktool
goto skipversioned
)
set max=0
for /f “tokens=1* delims=-_.0” %%A in (‘dir /b /a-d %BASENAME%*.jar’) do if %%~B gtr !max! set max=%%~nB
:skipversioned
popd
setlocal DisableDelayedExpansion

rem Find out if the commandline is a parameterless .jar or directory, for fast unpack/repack
if “%~1""" goto load
if not "%~2"
”" goto load
set ATTR=%~a1
if “%ATTR:~0,1%”“d” (
rem Directory, rebuild
set fastCommand=b
)
if “%ATTR:~0,1%”
"-" if “%~x1”==".apk" (
rem APK file, unpack
set fastCommand=d
)

:load
%java_exe% -jar -Duser.language=en -Dfile.encoding=UTF8 “%~dp0%BASENAME%%max%.jar” %fastCommand% %*

rem Pause when ran non interactively
for /f “tokens=2” %%# in ("%cmdcmdline%") do if /i “%%#” equ “/c” pause`
这是用Apktool解压后的某一软件
这是用Apktool解压后的某一软件。
中间的smali文件夹就是原来的.dex文件解析后的版本,里面有几个乃至上万个代码文件,都是.smali,用的就是smali。
之所以之前说exe和dex像就是因为这道理,exe里面是汇编,dex里的smali也是。

至于smali,我们下期再讲。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值