为了向经典的"Hello, World"致敬,我们也从一个简单的程序开始HelloWorld.apk。当你把这个APK安装到手机上运行后,在屏幕上就显示一行文字"Hello, World!"。现在我们想要通过注入的方式把”Hello World~!”修改为中文的”你好世界”。

1.反编译

Dos命令提示行 输入 apktool.bat d HelloWorld.apk

这条命令运行完后,在当前目录下会生成一个名为HelloActivity的目录。
该目录的结构为(名称后跟/表示这是一个目录):

HelloWorld/
       |--------------AndroidManifest.xml
       |--------------apktool.yml
       |--------------res/
       |--------------smali/

2.代码注入

打开 smaili目录找到需要注入的代码,MainActivity.smali。用文本编辑器打开该文件。搜索关键字”Hello World”找到代码

修改为”你好世界”。(这里我们也可以插入我们的代码,感兴趣的朋友可以学习下 smali语法:http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html)

3.重新打包生成1.APK

保存文件。命令行 apktool.bat b HelloWorld 1.apk 生成APK文件。

4.给新生成的apk文件签名

由于我们重新打包的apk文件,签名已经丢失,所以我们要重新签名,应用才能被安装。 这里我们用到了jdk/bin/jarsigner.exe。

命令行输入jarsigner -keystore E:\\keystore\1.keystore -storepass 123123 -verbose 1.apk zs.keystore

说明 jarsigner -keystore [签名文件路径] -storepass [密码] -verbose [需要签名文件路径] [签名文件别名]

5.删除手机上原有的HelloWorld,重新安装我们修改后的apk文件。

如何生成keystore

dos下进入JDK的bin目录,运行如下命令:
keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore

(-validity 20000代表有效期天数),命令完成后,bin目录中会生成android.keystore

如何查看呢?看命令
keytool -list -keystore "android.keystore" 输入你设置的keystore密码即可

Android 反编译 代码注入之HelloWorld的更多相关文章

  1. 《Android逆向反编译代码注入》 - 逆向安全入门必看视频教程

      适合人群: Android开发人员.逆向反编译开发人员.以及对Android逆向安全感兴趣的朋友. 视频地址: 51CTO学院:https://edu.51cto.com/course/24485 ...

  2. android 反编译和代码解读

    二 错误代码还原规则 if…else 语句: 反编译代码 if (paramBoolean) paramTextView.setTextColor(-16727809); while (true) { ...

  3. 【反编译系列】一、反编译代码(dex2jar + jd-gui)和反编译资源(apktool)

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! [反编译系列]二.反编译代码(jeb) [反编译系列]三.反编译神器(jadx) [反编译系列]四.反编译so文件(IDA_Pro) 概述 ...

  4. Android反编译(三)之重签名

    Android反编译(三) 之重签名 [目录] 1.原理 2.工具与准备工作 3.操作步骤 4.装X技巧 5.问题 1.原理 1).APK签名的要点 a.所有的应用程序都必须有数字证书 ,Androi ...

  5. Atitti.java android反编译解决方案-----虚拟机方案

    Atitti.java android反编译解决方案-----虚拟机方案 哈哈,终极解决方案是虚拟机...c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦..只要不能拿到c++源码就可.. ...

  6. Android反编译工具的使用-Android Killer

    今天百度搜索“Android反编译”搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android反编译.在这,我将使 ...

  7. Android 反编译

    Android 反编译 步骤:1.下载apktool 工具,这一步 主要是反编译 xml 文件. 步骤:2 把xx.smali 文件转为java 工具 (单个) 图形界面 下载dex2jar  和xj ...

  8. 转 谈谈android反编译和防止反编译的方法

    谈谈android反编译和防止反编译的方法   android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的项 ...

  9. Android 反编译apk 详解

    测试环境: win 7 使用工具: CSDN上下载地址: apktool (资源文件获取)  下载          dex2jar(源码文件获取) 下载        jd-gui  (源码查看)  ...

随机推荐

  1. android开发艺术探索

    android开发艺术探索  百度任玉刚 http://blog.csdn.net/singwhatiwanna/article/details/46810527

  2. objectARX判断当前坐标系

    判断当前坐标系是WCS还是UCS 使用系统变量 WORLDUCS   请参见 用户坐标系 (UCS) 概述 (只读) 类型: 整数 保存位置: 未保存 初始值: 1 指示 UCS 是否与 WCS 相同 ...

  3. hadoop常见错误集锦

    1  Hadoop namenode -format后Incompatible namespaceIDS 错误解决办法 重新格式话namenode后,会重新分配一个namespaceId, 这个nam ...

  4. Java关键字final、static使用总结(转)

    Java关键字final.static使用总结   一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...

  5. HDOJ-三部曲一(搜索、数学)-1003-Curling 2.0

    Curling 2.0 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total ...

  6. APP推广入门之AppStore数据分析

    AppStore中有很多数据,但对于一个App推广者而言,最需要关注的无非这么几个,即下载量.评论.权重.榜单排名.搜索排名以及热词搜索等.至于这些数据具体代表着什么,下面就先由下载量开始,来简单介绍 ...

  7. Unity3D ShaderLab法线贴图

    Unity3D ShaderLab法线贴图 说到法线贴图,应该算是我们最常使用的一种增强视觉效果的贴图.将法线贴图的各个像素点座位模型的法线,这样我们的光照可以模拟出高分辨率的效果, 同时也保持较低的 ...

  8. /bin/bash^M: bad interpreter: 没有那个文件或目录

  9. 使用WebMatrix发布网站到Windows Azure

    1. 在本地机安装 WebMatrix, 安装Windows Azure SDK 2. 登录Windows Azure, 网站 > 创建一个新网站或选择已有网站 3. 在发布应用程序,选择下载发 ...

  10. 《MORE EFFECTIVE C++》条款27 要求或者禁止对象分配在堆上

    1. 要求对象分配在堆上 临时对象一般是存在于栈中的,或者是静态对象存在于常量存储区的.那么当创建一个这样的对象的时候,一般是需要隐式或显式地调用构造函数,在销毁的时候调用析构函数的.可以从这方面入手 ...