飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3246|回复: 5

[转贴] 快速定位处理 WL/TMD Checksum

[复制链接]
  • TA的每日心情
    无聊
    2017-5-31 13:17
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2009-8-5 22:24:52 | 显示全部楼层 |阅读模式
    快速定位处理 WL/TMD Checksum.感谢zenix nooby 帮忙 学到几种处理wl/tmd checksum的方法 ,笨人摸索了另一个比较简单的方法 看图吧

    首先使用16进制工具查找原加壳程序的crc (最后的4个字节) 16进制 复制( ED 96 3A A0 )

    1.jpg (141.89 KB)
    2009-6-29 23:54






    od加载原加壳程序 F9 运行 搜索 最后4字节的16进制 (ED 96 3A A0 )记录 地址 0130EFDD 关闭od


    2.jpg (114.35 KB)
    2009-6-29 23:54




    od加载修改后的程序 F9 运行出现错误crc校验错误 不用管 搜索地址 0130EFDD  新的crc  (19 8E 3A A0  )



    作者:夜如晾水
    link:http://www.unpack.cn/viewthread.php?tid=37674
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2017-5-31 13:17
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2009-8-5 22:29:40 | 显示全部楼层
    patch WinLicense Checksum(不知道啥版本!!!)od+strong载入程序,od调试选项设置为中断新模块(DLL),F9数次,观察模块窗口当加裁IMAGHLP.DLL时进入模块。CTRL-N找到CheckSumMappedFile下断,取消中断新模块(DLL);重新跑程序。
    中断在CheckSumMappedFile。
    观察堆栈:0012FF28   00DF5DA8  AA.00DF5DA8
    取消断点,CTRL-G到00DF5DA8下断,F9
    向上拉一下
    0012FF2C   04250000
    0012FF30   00752FFC  AA.00752FFC
    0012FF34   00DF5CBB  AA.00DF5CBB
    0012FF38   00DF5CBF  ASCII "Jnu"
    0012FF3C   00D7C3A7  AA.00D7C3A7

    PIMAGE_NT_HEADERS CheckSumMappedFile(
      __in   PVOID BaseAddress,      //0012FF2C   
      __in   DWORD FileLength,//0012FF30   
      __out  PDWORD HeaderSum,//0012FF34   
      __out  PDWORD CheckSum//0012FF38   
    );
    这里不是真正的CHECKSUM,还要经过运算的。
    取消断点,HR 0DF5CBF,F9
    0012FF34   00756E4A  AA.00756E4A
    0012FF38   EBB3A712   原来的CHECKSUM值。就是文件结尾的DWORD.自己可以用UA看一下.
    取消断点。HR 12FF38,F9
    00C63E7F    8F02            pop     dword ptr [edx]
    00C63E81  ^ E9 D511FFFF     jmp     00C5505B
    把值放到EDX中。EDX值为00C54D30
    取消断点。 HR 00C54D30,F9
    00C62FD3    FF32            push    dword ptr [edx]
    00C62FD5  ^ E9 8120FFFF     jmp     00C5505B
    堆栈中0012FF38   EBB3A712
    这里是常规的CISC比较。
    取消断点。在C62FD5下断(ps:根据CISC指令的比较方法,就能知道其实这里的ECX就是正常的值了)
    写个脚本

    looper:
    ESTO
    cmp ecx,EBB3A712
    Jnz looper
    pause
    运行脚本,停止了。EAX:XXXXXX,ECX:EBB3A712;
    用UA把EAX的值写入文件尾就搞定了,就这么简单,不清楚是啥版本,呵呵!


    作者:xtor
    link:http://www.unpack.cn/viewthread.php?tid=37463
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2017-5-31 13:17
  • 签到天数: 5 天

    [LV.2]偶尔看看I

     楼主| 发表于 2009-8-5 22:36:40 | 显示全部楼层
    附加一些讨论。

    xtor:
    我拿了wl 2.08加壳样本来测试,这样不行的。我早些时候发的(帖子已转到上面的回复)
    这个是WL2.08正确PATCH CHECKSUM的方法,看看大家还有没有更快捷的方法。

    夜凉如水:
    我从1.855 测试到2080 没任何问题 难道有特列吗

    xtor:
    原帖由 夜凉如水 于 2009-6-30 08:05 发表
    我从1.855 测试到2080 没任何问题 难道有特列吗
    你可以试下tuts4you那个2.080的样本,肯定不行,不可能在内存中找到CRC的值,已经给擦除了。

    faint88:
    我还是用的老办法LoadLibraryA下硬断  一直狂按  到加载imagehelp.dll时  CheckSumMappedFile下硬断 然后bp FreeLibrary

    ZeNiX:
    剛才試了 Themida 2.0.6.5 的主程序.
    1. 用夜凉如水的方法沒成功.
    2. 用 faint88 的方法, 確實出來了. (直接看暫存器).
    3. 用 Shoooo 對 WL 1.8.5.5 的方法 (要 XOR 的那個), 也沒成功.
    建議夜凉如水也可以試看看.

    xtor:
    楼主的这种方法只适合早期版本的FILE PATCH-SINGLE SIGN选项的。
    2.0x以前用SHOOOO的方法
    2.0X-2.065用faint88
    2.07要用FREELIBARY下断就找到了。
    2.08要用我发的帖子的方法,很快就找到正确值。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-8-5 22:48:36 | 显示全部楼层
    高手啊,学习偶
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    昨天 10:05
  • 签到天数: 678 天

    [LV.9]以坛为家II

    发表于 2009-8-6 11:55:29 | 显示全部楼层
    谢谢,学习一下
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-10-19 14:02
  • 签到天数: 240 天

    [LV.8]以坛为家I

    发表于 2009-8-25 21:13:30 | 显示全部楼层
    学习一下patch checksum
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表