6、类/函数名大法
我们再祭出第二大杀器,类/函数/变量名大法搜索大法。
通常类名符合的范围更小,所以先只使用Class。
试试看红包的英语:RedPacket(类名命名所以R和P大写)

OK,我们找到了十几条,开始逐一排查,第一条RedPacketInfo点进去一看就是个包含了各种field的ui用的vo类,跳过,再看下一个,从包名com.tencent.mobileqq.data看上去,似乎有戏,QQWalletRedPacketMsg:
package com.tencent.mobileqq.data;
import android.text.TextUtils;
import com.tencent.mobileqq.hotpatch.NotVerifyClass;
import cooperation.qzone.util.WiFiDash;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import tencent.im.msg.im_msg_body.QQWalletAioBody;
/* compiled from: ProGuard */
public class QQWalletRedPacketMsg {
public String authkey;
private int channelId;
public int conftype;
public QQWalletTransferMsgElem elem;
public String envelopeName;
public int envelopeid;
public boolean isOpened;
public int msgFrom;
public String redPacketId;
public int redtype;
private int resend;
public int templateId;
...串行化、读写、构建方法等,可以无视。
从field名来看,这里还是比较可疑的,猜测redtype是不是描述红包类型的。
我们再次使用关键词redtype进行搜索,这次选择Code,只进行代码内搜索,结果却发现貌似不对,找到相关的字符串是”查看详情”,貌似是描述红包领取状态的。
不放弃,继续抓住QQWalletRedPacketMsg这个类进行搜索,看看是不是有外面包着这个类的Class,搜索QQWalletRedPacketMsg,范围使用Field,排除掉类本身外,只有唯一的结果:MessageForQQWalletMsg:
public class MessageForQQWalletMsg extends ChatMessage {
// 哦哦?COMMAND_REDPACKET?口令红包
public static final int MSG_TYPE_COMMAND_REDPACKET = 6;
public static final int MSG_TYPE_COMMON_REDPACKET = 2;
public static final int MSG_TYPE_COMMON_THEME_REDPACKET = 4;
public static final int MSG_TYPE_INDIVIDUAL_REDPACKET = 2001;
public static final int MSG_TYPE_LUCY_REDPACKET = 3;
public static final int MSG_TYPE_LUCY_THEME_REDPACKET = 5;
public static final int MSG_TYPE_PUBLIC_ACCOUNT_REDPACKET = 2002;
public static final int MSG_TYPE_TRANSFER = 1;
...










