浅谈微信smali注入

作者:郭少雷

搞android搞了几年也没搞出个啥牛逼app出来,眼看时下最火的app微信如此火热,实在想搞搞它,索性就想着给它加点东西进去。

以下内容纯属本人个人爱好,仅限个人学习android用途以及对android的深入了解。

首先我们得想一想加点什么东西在微信里面,这里简单做个体验,加一个推送sdk至微信最新(6.5.7)apk包中,并由服务端控制向其推送消息。以下步骤依次讲解加入流程

1.申请推送平台

这里以个推为例并下载Getui_SDK;新建一Android Studio工程,包名同微信包名保持一致(com.tencent.mm),新建一PushActivity用于获取启动个推SDK的smali代码片段。依据个推sdk创建相应DemoIntentService和DemoPushService;

这里写图片描述


2.获取资源文件

生成工程apk后使用ApkTool反编译生成好的apk后得到以下smali代码及资源文件。反编译apk文件
命令:

    apktool d <file.apk> <dir>
 得到所有资源及代码文件。 

这里写图片描述

进入smali目录获取到PushActivity.smali中启动个推代码片段:

这里写图片描述


3.反编译

使用ApkTool反编译微信apk得到微信资源及smali代码:

这里写图片描述


4.定位onCreate方法

查看微信资源AndroidManifext.xml中启动Launcher的Activity为LauncherUI,打开LauncherUI.smali文件并找到onCreate方法:

这里写图片描述

在该方法最后加入启动个推smali代码,并将PushActivity改为Launcher所在位置后保存:

这里写图片描述


5.加入个推服务

保存个推用到的资源文件到微信目录后修改微信AndroidManifest.xml加入个推服务:

这里写图片描述


6.回编apk文件

命令:

apktool b <dir>
使用apk回编命令对微信资源目录进行回编后得到新的微信apk;安装启动后即可由个推服务端对客户端进行Push消息推送。

这里写图片描述

转载于:https://www.cnblogs.com/wangyaning/p/7853871.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Embeded linux之移植iptables

一、内核环境&#xff1a; linux-3.4.35 -*- Networking support ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration ---> <*> IP tables support (required for filtering/masq/NAT)…

Hadoop HIVE

数据仓库工具。构建在hadoop上的数据仓库框架&#xff0c;可以把hadoop下的原始结构化数据变成Hive中的表。&#xff08;主要解决ad-hoc query&#xff0c;即时查询的问题&#xff09; 支持一种与SQL几乎完全相同的语言HQL。除了不支持更新&#xff0c;索引和事务&#xff0c;几…

Xcode9学习笔记67 - 打印查看程序沙箱结构中常用的几个目录

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//首先获得应用程序目录的路径&#xff0c;在该目录下有三个文件夹&#xff1a;文档目录、库目录、临时目录以及一个程序包。该目录就是应用程序的…

检测raid类型和磁盘坏道脚本

#!/bin/sh #脚本功能&#xff1a; #安装工具MegaCli64 #Host Information&#xff1a;主机名和ip地址 #Raid Information&#xff1a;raid信息和充电状态 #WARNING Information&#xff1a;MediaErrcount检测坏块和哪块盘 #Disk Information&#xff1a;磁盘信息 #上传MegaC…

《SpringBoot揭秘 快速构建微服务体系》读后感(三)

SpringApplication&#xff1a;SpringBoot程序启动的一站式解决方案 深入探索SpringApplication执行流程 因为书上的版本是1.2的&#xff0c;比较老&#xff0c;这里参考http://blog.csdn.net/zxzzxzzxz123/article/details/69941910 public ConfigurableApplicationContext ru…

装饰器函数

1.装饰器 ​ 装饰器&#xff1a;在不改变原函数的调用方式和函数&#xff0c;额外的增加功能 简单装饰器def timer(func):def inner():print(time.time())func() # 原来的函数return inner ​ timer # func1 timer(func1) def func1():print(func1) 函数带返回值def timer…

6G SDI/12G SDI 基带信号无压缩传输方案介绍

认知数字像素分辨率&#xff1a; 首先从分辨率(数字像素)角度来讲&#xff0c;从标清时代走到高清&#xff0c;从720x576到现在的1920x1080&#xff0c;宽高比从4:3到16:9&#xff0c;这个是我们比较熟悉的&#xff0c;4K实际上是建立在高清基础之上的&#xff0c;我们称之为“…

12.4日团队工作总结

今天团队的主要任务是注重于画图工具的设计&#xff0c;这就意味着我们首要的任务是将画图工具设置出来并可以完整运行&#xff0c;接下来才能顾及之前的改图软件&#xff0c;但今天在设计的过程中&#xff0c;遇到了两者无法无缝结合的问题&#xff0c;目前还没解决。 转载于:…

最短路径——Dijkstra算法以及二叉堆优化(含证明)

一般最短路径算法习惯性的分为两种&#xff1a;单源最短路径算法和全顶点之间最短路径。前者是计算出从一个点出发&#xff0c;到达所有其余可到达顶点的距离。后者是计算出图中所有点之间的路径距离。 单源最短路径 Dijkstra算法 思维 本质上是贪心的思想&#xff0c;声明一个…

linux shmget shmctl

shmgetint shmget(key_t key, size_t size, int flag);key: 标识符的规则size:共享存储段的字节数flag:读写的权限返回值&#xff1a;成功返回共享存储的id&#xff0c;失败返回-1key_t key----------------------------------------------- key标识共享内存的键值: 0/IPC_P…

伯克利开源工具库RLib现已支持大规模多智能体强化学习

AI前线导读&#xff1a;近日&#xff0c;UC伯克利的研究团队RISELab在其Github的项目Ray Rlib 0.6.0中添加了面向多智能体强化学习&#xff08;multi-agent Reinforcement Learning&#xff09;的支持。本文由团队成员Eric Liang首发于RISELab团队主页&#xff0c;AI前线翻译整…

如何简单理解光圈大小对手机摄影的影响?

你&#xff0c;准备好参加今夏的朋友圈摄影大赛了吗&#xff1f; 现在的天气有多热&#xff0c;谁出门谁知道&#xff01;出去玩还要背一台单反&#xff0c;绝对可以说是一种折磨了。但是&#xff0c;如果你拥有一台大光圈的手机&#xff0c;一样可以在朋友圈脱颖而出。 那么…

基于centos6.7的docker私有仓库搭建

2019独角兽企业重金招聘Python工程师标准>>> 1 仓库配置https认证 cd /etc/docker/ mkdir certs [rootdocker01 docker]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/docker01.key -x509 -days 365 -out certs/docker01.crt 填好相应的简称及email…

第十周软件工程作业-每周例行报告

一、PSP T名称C内容ST开始时间ED结束时间中断时间/min实际时间/min会议第一次Scrum会议11月17日16:0011月17日16:30030第二次Scrum会议11月18日15:0011月18日15:30030第三次Scrum会议11月19日17:0011月19日17:30030第四次Scrum会议11月20日11:3511月20日12:15040第五次Scrum会议…

MAVEN下载和安装

1.maven的下载 下载链接http://maven.apache.org/download.cgi从该网站下载最新版本 2.maven的安装 电脑上需要安装JDK环境&#xff0c;需要安装JDK7以上的版本。下载之后进行解压&#xff0c;将maven解压到不含中文和空格的一个目录 maven目录结构bin目录&#xff1a;mvn.bat、…

CCD/CMOS靶面尺寸型号标准

传感器尺寸指的是感光器对角线尺寸&#xff0c;1/1.7英寸&#xff08;14.8毫米&#xff0d;&#xff0d;导向管尺寸&#xff09;大于1/2.3英寸&#xff08;10.95毫米&#xff0d;&#xff0d;&#xff0d;导向管尺寸&#xff09;.采用同种技术水平的感光器&#xff0c;肯定是单…

Linux课程笔记 Day09 课上内容总结 MySql,Php的安装及Apache,Nginx,Php的优化

一 MySql 1.1 如何选择MySql的版本 1.2 MySql单实例安装 &#xff08;1&#xff09; 建立mysql用户 首先以root身份登陆到linux系统&#xff0c;然后执行如下命令创建mysql用户及用户组 [roottest3 ~]# groupadd mysql [roottest3 ~]# useradd -s /sbin/nologin -g …

jenkins 通过自动拉取Gitlab上的代码实现自动更新NGINX

所需要用到的环境&#xff1a; Gitlab&#xff1a; 172.20.7.70Jenkins&#xff1a; 172.20.7.71nginx&#xff1a; 172.20.7.72 gitlab 和Jenkins安装自行百度 开始实验操作 首先通过网页访问nginx&#xff0c;nginx默认测试页我是改了的 &#xff0c;所以看到的不是它原…

Kylin工作原理、体系架构

核心思想&#xff1a;预计算。 对多维分析可能用到的度量进行预计算&#xff0c;将计算好的结果保存成Cube&#xff0c;并存在HBase中&#xff0c;供查询时直接访问 将高复杂度的聚合运算、多表连接……操作转换成对预计算结果的查询。决定了Kylin拥有很好的快速查询、高并发能…

PPT怎么在线转视频?

PPT在线转视频的方法有哪些&#xff1f;在PPT中有些播放上的问题还是可以进行文件的转换&#xff0c;下面就给大家简单的介绍一下方法。步骤一&#xff1a;PPT转视频的直接方法是进入迅捷PDF在线转换器网站中&#xff0c;点击导航栏中的视频音频转换中的PPT转视频&#xff1b; …