如何进行APK简单代码注入

一、前言

apk在未加密的情况下,通过反编译,得到smail文件。将需要注入代码注入即可。之后封装、签名即可!

二、制作apk

使用android studio生成一个简单的apk。使用默认代码即可。

package com.example.myapplication1;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }}

生成apk 后,运行apk。

如何进行APK简单代码注入

三、反编译

1、打开androimanifest.xml文件,找到activity下的android:name后跟类。

如何进行APK简单代码注入

2、使用np管理器进行反编译,获取smail文件。

如何进行APK简单代码注入

文件内容如上。我们需要找到onCreate函数,该函数是创建页面所调用的一个函数。那么我们在return-void前,将我们所要注入的代码贴上即可。注入代码为一个弹窗提示。提示词为test。它的smail代码为

const-string v0, "test"const/4 v1, 0x0invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;move-result-object v0invoke-virtual {v0}, Landroid/widget/Toast;->show()V

填写到smail后,格式如下:

如何进行APK简单代码注入

插入的是一个完整方法。需要line加上1。同时弹窗是一个组件,需要在前面注册一下

如何进行APK简单代码注入

将3改成4。改完后整体代码

如何进行APK简单代码注入保存即可。自动编译签名。

四、测试结果

编译,签名后安装。

如何进行APK简单代码注入

成功弹窗。

看完上述内容,你们对如何进行APK简单代码注入有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

文章标题:如何进行APK简单代码注入,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/24026

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月8日 下午10:54
下一篇 2022年9月8日 下午10:55

相关推荐

  • MySQL乐观锁和悲观锁如何实现

    锁分类 MySQL的中锁按照范围主要分为表锁、行锁和页面锁。其中myisam存储引擎只支持表锁,InnoDB不仅仅支持行锁,在一定程度上也支持表锁。按照行为可以分为共享锁(读锁)、排他锁(写锁)和意向锁。按照思想分为乐观锁和悲观锁。 表结构 下面的SQL语句是表的结构: CREATE TABLE `…

    2022年9月8日
    54100
  • mysql如何查询最大id值

    在mysql中,可以使用SELECT语句配合max()函数来查询最大id值,语法为“SELECT MAX(id) FROM 表名;”。SELECT语句用于查询指定表中数据,而max()函数用于返回查询结果集中指定列中的最大值,语法“MAX(列名)”;而想要获取id列的最大值,max()函数中的参数值…

    2022年9月21日
    3.0K00
  • 误用html entities函数引发的漏洞怎么解决

    题目代码如下: 漏洞解析 : 根据题目意思,这里考察的应该是个 xss漏洞 , 漏洞触发点应该在代码中的 第13-14行 。这两行代码的作用是直接输出一个html的 <a> 标签。代码中的 第3-5行 ,foreach循环 对 $_GET 传入的参数进行了处理,但是这里有个问题。我们看下…

    2022年8月30日
    49600
  • MySQL外键约束知识点有哪些

    一、MySQL外键约束作用 外键约束(Foreign Key)即数据库中两个数据表之间的某个列建立的一种联系。这种联系通常是以实际场景中含义完全相同的字段所造成的。MySQL通过外键约束的引入,可以使得数据表中的数据完整性更强,也更符合显示情况。下面,我举一个例子来说明MySQL外键约束的作用。 假…

    2022年9月15日
    1.4K00
  • Redis的内存淘汰策略和过期删除策略的区别是什么

    前言 Redis 是可以对 key 设置过期时间的,因此需要有相应的机制将已过期的键值对删除,而做这个工作的就是过期键值删除策略。 Redis 的「内存淘汰策略」和「过期删除策略」,很多小伙伴容易混淆,这两个机制虽然都是做删除的操作,但是触发的条件和使用的策略都是不同的。 过期删除策略 Redis …

    2022年9月6日
    55400
  • office包括哪些办公软件

    office包括的办公软件:1、Word,一个文字处理器应用程序,提供了用于创建专业的文档工具;2、Excel,一款电子表格软件,是最流行的个人计算机数据处理软件;3、PowerPoint,是一款演示文稿软件,可以在投影仪或者计算机上进行演示,也可以将演示文稿打印出来;4、Publisher,一款入…

    2022年9月13日
    2.8K00
  • windows deepl如何使用

    deepl使用方法 1、首先我们下载好deepl软件到本地,解压缩包。 点击exe程序,打开。 2、然后我们就打开这个软件了。 3、这里我们可以注册一个账号,也可以直接跳过去直接登录。 4、点击“开始翻译”就可以正式使用了。 关于“windows deepl如何使用”这篇文章的内容就介绍到这里,感谢…

    2022年9月26日
    81400
  • python如何找到列表中出现最频繁的数

    找到列表中出现最频繁的数 test= [1,2,3,4,2,2,3,1,4,4,4]print(max(set(test),key=test.count))#-> 4 python有哪些常用库 python常用的库:1.requesuts;2.scrapy;3.pillow;4.twisted…

    2022年8月30日
    33400
  • mysql如何查询最小值

    在mysql中,可以使用SELECT语句查询指定表中的全部数据,然后利用MIN()函数返回查询结果集中的最小值即可,查询语法“SELECT MIN(指定列名) FROM 表名;”。MIN()函数是用来找出结果集的最小值纪录的,可以返回查询列中的最小值,只需要将要查询的列名作为参数传递给MIN()函数…

    2022年9月21日
    1.3K00
  • Vue常见报错问题怎么解决

    一、报错结构 报错信息一般会包含这几部分:错误类型、错误位置、错误描述、错误规则和问题数量。 如上图: 报错类型为编译错误; 错误位置在D:myelsrcviewsadminAdminView.vue中的第四行第2个字符;(报错位置不一定每次都是准确的,但是可以根据提示缩小范围) 错误描述 当前错误…

    2022年9月20日
    1.2K00
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部