V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
suduo1987
V2EX  ›  程序员

[学习向]最近很忙,换个思路,送上最新版 TIM 和微信防撤回补丁

  •  1
     
  •   suduo1987 ·
    sduo · 2019-01-10 00:01:32 +08:00 · 15752 次点击
    这是一个创建于 2178 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    如题

    作用

    群聊、私聊撤回均无效

    食用方式

    考虑到安全问题,就放补丁文件,请自己使用x64dbg修改。

    修改内容

    TIM(2.3.1.20994):修改 2 字节

    im.dll

    0004DDE6:85->84

    0004E038:85->84

    微信(2.6.6.28):修改 1 字节

    wechatwin.dll

    0024B18E:75->74

    GitHub

    注意:仅针对 Win PC 版本

    第 1 条附言  ·  2019-01-10 09:41:38 +08:00

    比较忙,简单交代下思路:

    1. 附加到进程
    2. 选择对应模块
    3. 搜索关键字"revoke"
    4. 下断点
    5. 调试
    6. 记录特征值(方便下次修改)
    第 2 条附言  ·  2019-01-10 10:51:06 +08:00

    打补丁方法

    1. 下载软件
    2. 文件=>附加=>选择TIM或者WeChat
    3. 符号选项卡=>TIM找IM.dll;WeChat找WeChatWin.dll,双击打开模块
    4. CPU选项卡=>右键=>补丁=>导入=>修补文件=>不要直接覆盖原文件(被占用),先存其他地方
    5. 关闭软件=>关闭TIM或WeChat=>备份原有文件后覆盖补丁文件
    6. 直接打开TIM或者WeChat

    enjoy it

    37 条回复    2019-02-14 12:43:55 +08:00
    mario85
        1
    mario85  
       2019-01-10 00:35:03 +08:00 via iPhone   ❤️ 1
    你这叫学习向?
    起码说下,修改的地方都什么指令,函数什么逻辑,才能叫学习
    suduo1987
        2
    suduo1987  
    OP
       2019-01-10 00:41:49 +08:00
    @mario85 成果向?
    cattrace
        3
    cattrace  
       2019-01-10 06:55:34 +08:00
    怎么找到的点能说下么?学习下
    ThirdFlame
        4
    ThirdFlame  
       2019-01-10 08:48:20 +08:00
    求个思路
    ThirdFlame
        5
    ThirdFlame  
       2019-01-10 09:00:04 +08:00
    另外 wechatwin.dll 2.6.6.28 MD5:92F13F3D1E82A973F8FE8CFD4D08FF4D
    0024B18E 并不是 75 啊 ,winhex 打开的不行?
    suduo1987
        6
    suduo1987  
    OP
       2019-01-10 09:42:01 +08:00
    @ThirdFlame 用我说的软件,WinHex 我没有试过
    littleylv
        7
    littleylv  
       2019-01-10 09:43:46 +08:00
    占楼插播一个 Mac QQ 版: https://github.com/doveccl/QQU
    用了好几年了 ,美滋滋
    wjm2038
        8
    wjm2038  
       2019-01-10 10:21:33 +08:00 via Android
    歪个楼,这头像是。。?
    yiFire
        9
    yiFire  
       2019-01-10 10:34:46 +08:00
    不好意思,== 给个操作方法把···这方面不懂
    suduo1987
        10
    suduo1987  
    OP
       2019-01-10 10:51:35 +08:00
    @wjm2038 额,头像咋啦?
    suduo1987
        11
    suduo1987  
    OP
       2019-01-10 10:51:48 +08:00
    @yiFire 更新了方法
    wjm2038
        12
    wjm2038  
       2019-01-10 11:02:30 +08:00 via Android
    @suduo1987 有点感兴趣出处。。
    ob
        13
    ob  
       2019-01-10 11:04:06 +08:00 via Android
    会影响自己的撤回吗?
    cheese
        14
    cheese  
       2019-01-10 11:10:20 +08:00
    emmm,我这里不行,在导入补丁的时候,显示“当前进程中没有需要应用的补丁”
    smallgoogle
        15
    smallgoogle  
       2019-01-10 11:12:10 +08:00
    V2 什么时候变成了那么低端的地方了。。。瞬间以后都不想上了。
    suduo1987
        16
    suduo1987  
    OP
       2019-01-10 11:14:08 +08:00
    @ob 不会
    suduo1987
        17
    suduo1987  
    OP
       2019-01-10 11:14:26 +08:00
    @cheese 模块不对
    suduo1987
        18
    suduo1987  
    OP
       2019-01-10 11:14:53 +08:00   ❤️ 2
    @smallgoogle 不好意思,底端到您了
    cheese
        19
    cheese  
       2019-01-10 11:19:20 +08:00
    @suduo1987 #17 模块是没问题的,但是我找不到那个值
    Shynoob
        20
    Shynoob  
       2019-01-10 11:23:09 +08:00
    已 star,另外楼上说低端不清楚啥意思
    yiFire
        21
    yiFire  
       2019-01-10 11:35:19 +08:00
    感谢~
    luosuosile
        22
    luosuosile  
       2019-01-10 11:38:41 +08:00
    楼上说低端的,我猜是觉得广告贴变多了把。。
    我觉得实现这个蛮有意思
    sbh3c4k
        23
    sbh3c4k  
       2019-01-10 11:46:41 +08:00   ❤️ 1
    @smallgoogle 别把自己想的多牛逼 隔行如隔山 技术一般的就喜欢装逼
    wallriding
        24
    wallriding  
       2019-01-10 11:48:37 +08:00
    @smallgoogle 快别上了您呐,真是个人物。
    ThirdFlame
        25
    ThirdFlame  
       2019-01-10 11:55:07 +08:00   ❤️ 1
    经测试成功。 使用 winhex 直接 16 进制修改 0024A58E 75->74 ( 2.6.6.28 wechatwin.dll 2.6.6.28 MD5:92F13F3D1E82A973F8FE8CFD4D08FF4D )即可
    suduo1987
        26
    suduo1987  
    OP
       2019-01-10 12:12:09 +08:00
    @cheese 版本号不对吧,这东西严格控制版本,特征值我还没找到,还有商店版要用商店版的补丁
    suduo1987
        27
    suduo1987  
    OP
       2019-01-10 12:13:35 +08:00
    @wjm2038 我也忘了= =,总之来源互联网~
    suduo1987
        28
    suduo1987  
    OP
       2019-01-10 12:16:47 +08:00
    @ThirdFlame 之前是不是弄错文件了?我只是想知道原因
    wafm
        29
    wafm  
       2019-01-10 12:53:27 +08:00   ❤️ 1
    以前做过游戏,懂一些汇编。。

    虽然没实践过,我就按照我的理解去给试着解释一下

    如果有不对请指出哦。。

    其实根据撤回原理可以分析出是撤回是本地判断,意思是其实消息会先到本地,如果接受到服务器的撤回指令,那么就撤回

    但是注意 消息其实先到了本地的,如果我们在本地把撤回判断给逆了,让服务器的撤回指令无效那就没法撤回了,消息依然在本地。

    搜索关键字“ revoke ”是为了快速定位代码块,有些开发者在开发的时候喜欢使用一些近似意思的英语翻译,所以这就使得定位代码块简单了很多,如果没有此类关键字 断点是不好的断的 (何为断点:当程序执行到某一关键动作调试器会暂停,暂停的位置可以理解成断点,例如早期游戏界鼎鼎大名的 bp send )

    没记错的话 85 -> 84 应该是 不等于 -> 等于

    75 -> 74 也是同理

    总之就是分析流程,让程序正常跑一次,分析清楚程序的内部运行情况再做条件修改。

    由于是本地判断,程序又没有加密混淆加壳,还给出了关键字 所以修改起来就是简单的条件判断就修改了。
    ThirdFlame
        30
    ThirdFlame  
       2019-01-10 12:53:53 +08:00
    @suduo1987 不是的 ,用 x32dbg 0024B18E:75->74 最终体现在文件上的结果就是 0024A58E 75->74,应该是 dll 文件调用时 加载地址的偏移问题。 我二进制小白,猜测的。
    wafm
        31
    wafm  
       2019-01-10 12:56:22 +08:00
    @ThirdFlame 对,就是文件偏移量转换 百度或者 GOOGLE 可以很简单的搜索到转换原理
    yongshou
        32
    yongshou  
       2019-01-10 13:07:03 +08:00 via Android
    下载个看看有没有用
    suduo1987
        33
    suduo1987  
    OP
       2019-01-10 13:29:10 +08:00
    @wafm 对的 就是这个意思
    bosshida
        34
    bosshida  
       2019-01-10 22:35:38 +08:00
    下载了 2.6.6.28 版本的微信,用 x32dbg 查这个 wechatwin.dll ,然后在 [转到] -- [文件偏移] 到“ 0024B18E ”这个偏移,显示正确的表达式:67B9BD8E,确定后,偏移右侧显示的数值是:68 2BCEF7E9,并没有 75. 请问是怎样修改的?
    bosshida
        35
    bosshida  
       2019-01-10 22:40:37 +08:00
    试了 30 楼的那个偏移就可以了。 [转到] -- [文件偏移] 到“ 0024A58E ”这个偏移,就有 75 了
    flowfire
        36
    flowfire  
       2019-02-11 10:35:30 +08:00 via Android
    …………直接修改二进制文件…………?
    seanzzz
        37
    seanzzz  
       2019-02-14 12:43:55 +08:00
    谢,亲测可以
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3587 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 04:33 · PVG 12:33 · LAX 20:33 · JFK 23:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.