微信自定义动态表情植入教程

昨天应老姐要求,给她的微信弄点自定义表情,开始以为直接在微信中添加gif表情即可,没想到加进去后动不了。下了个微信apk包回来反编译研究后发现,能动的表情都是内嵌的。因此想要添加能动的表情进去,就需要修改相应manifest.xml文件,重新打包签名安装包,下面就把实施过程粗略写一下。
下面3个是整个过程中用到的工具:

  1. apktool
  2. auto-sign
  3. md5sums

apktool用于反编译android apk安装包,下载apktool1.4.3.tar.bz2apktool-install-windows-r04-brut1.tar.bz2,然后新建一个android_hack文件夹,把以上两个文件解压放到里面。
下载微信客户端weixin36android.apk,放到android_hack文件夹中。打开CMD输入以下命令进行反编译。

apktool.bat d weixin36android.apk weixin

执行完毕后,会得到weixin文件夹,里面就有微信客户端的AndroidManifest.xml文件、布局文件和资源文件,在这里只要修改其中的资源文件就可以。进入“weixin\assets\custom_emoji”文件夹中可以看到微信自带的兔斯基表情和猜拳表情。在manifest.xml文件中有这些文件的描述和md5验证。要加入新的表情就需要同步修改这个文件,比如要添加这个表情,首先使用md5sums计算出它的md5值,然后添加下面格式的条目。

<?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?>
<emojis>
<catalog id=&quot;0x11&quot; name=&quot;emoji_custom_all&quot;>
<emoji md5=&quot;e10772b9dddebc42ef069e25c33252dc&quot; name=&quot;biaoqin1.gif&quot; type=&quot;0x2&quot;></emoji>
</catalog>
</emojis>

为了方便批量增加表情,写了以下脚本批量计算MD5值并生成以上格式的条目。

#/usr/bin/perl

use strict;
use warnings;
opendir my $dir,&quot;pic&quot;;
my @gif_list = readdir $dir;
foreach my $file (@gif_list) {
	unless($file eq '.' or $file eq '..') {
		my $md5sum = <code>md5sum.exe pic/$file</code>;
		chomp $md5sum;
		$md5sum =~ s/^(\w+).*$/$1/g;
		print &quot;\t\t\n&quot;
	}
}

然后回到android_hack文件夹,执行以下命令重新打包微信。

apktool b weixin weixin_unsign.apk

得到打包好的weixin_unsign.apk文件,这是未签名的apk安装包,无法直接安装到手机上,需要使用auto-sign签名后才可以安装到手机上。下载解压auto-sign后,把weixin_unsign.apk放到里面,执行下面的命令就可以完成签名。

java -jar signapk.jar testkey.x509.pem testkey.pk8 weixin_unsign.apk weixin_signed.apk

完成签名后就可以安装到手机上了,如果安装失败,请先卸载手机上的微信再次安装即可。

6 Comments

  1. 不行,那些命令不实用,说apktool不是内部或外部运行命令也不是批处理文件。

  2. 这个还是太笼统了,请问你能说详细点吗?比如用什么软件打开什么东西,以及运行环境需要什么软件,脚本在哪个软件编辑,如何运行,如果可以的话,谢谢

  3. 微信的彩蛋都有时效性,能修改下让没时效性啊
    比如我爱你,只能在情人节的时候出现过,现在没有了
    能给改一下,让现在也能有

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.