一、整体思路
程序中一定存在一个位置,判断本地版本与线上版本是否相同,如果本地版本小于线上版本则进行更新。
二、开整
使用IDA分析WeChatWin.dll,待分析完成后按shift + f12调出Strings窗体,查找与update相关的字符。
经过我的实验,可以直接查找getUpdateInfo. version is old字符,如下图可见该字符串保存在aGetupdateinfoV变量中
按x键分析哪里对该字符串进行了调用,可见是如下处进行了调用
Up o sub_181035010+1B34 lea rax, aGetupdateinfoV; "getUpdateInfo. version is old. pack_ver"...
进入调用处代码后按F5进入伪代码分析,可见972行处进行了版本判断,我们需要修改的就是这里的判断。选中代码同步后,选中972行后返回IDA View-A窗体。
将判断处的ja修改为取反的jbe,导出修改后的dll文件覆盖原文件即可彻底屏蔽更新