飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 9018|回复: 16

[原创] 【更新】文件批量重命名 V4.20 爆破+追码+Loader补丁

[复制链接]
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

    发表于 2014-6-29 18:08:52 | 显示全部楼层 |阅读模式
    本帖最后由 geekcat 于 2014-6-30 17:27 编辑

    【文章标题】: 文件批量重命名 V4.20  爆破+追码+Loader补丁
    【文章作者】: geekcat
    【作者邮箱】: geek_huang@163.com
    【作者主页】:
    【软件名称】: 文件批量重命名 V4.20   
    【软件大小】: 1.80 MB (1,893,420 字节)
    【加壳方式】: 无
    【保护方式】: 注册码
    【编写语言】: Microsoft Visual Basic 5.0 / 6.0
    【使用工具】: OD、PEID
    【操作平台】: XP SP3
    破解声明】:破解在于交流思路和过程,结果并不重要,请不要用于非法用途;
    【软件介绍】:文件批量重命名软件是目前最方便快捷、功能最强大的文件批量重命名工具。
    【破解声明】:今天中午时群里的@Mod5689 兄弟说拿个软件练习一下,一起交流思路,于是有这篇破文。

    在这谢谢@mod5689 、@DaShanRen指出之前写的不足之处,以后如果有问题和足之处希望多多指出!
    --------------------------------------------------------------------------------------------------------------------------------
    【破解过程】

    1、软件没有壳VB写的,直接OD载入F9运行输入注册信息后有错误提示 “注册码错误,请重新输入!”
    2、搜索字符串,找到错误提示双击来到汇编窗口,向上找到关键CALL和关键跳;
    代码:

    004D002D   .  50               push eax
    004D002E   .  FF15 EC104000    call dword ptr ds:[<&MSVBVM60.#520>]   ;  msvbvm60.rtcTrimVar
    004D0034   .  E8 6768FFFF      call 文件批量.004C68A0                                             ;  算法CALL  调用 2  注册时调用
    004D0039   .  8945 88          mov dword ptr ss:[ebp-0x78],eax                                ;  真码   (UNICODE "AFFX-FFR0-ADX2-EPL6")
    004D003C   .  C745 80 08800000 mov dword ptr ss:[ebp-0x80],0x8008
    004D0043   .  8D4D 90          lea ecx,dword ptr ss:[ebp-0x70]
    004D0046   .  51               push ecx                               ; /var18
    004D0047   .  8D55 80          lea edx,dword ptr ss:[ebp-0x80]        ; |
    004D004A   .  52               push edx                               ; |var28
    004D004B   .  FF15 44114000    call dword ptr ds:[<&MSVBVM60.__vbaVar>                ; 比较真假码的关键CALL  VB的比较函数 eax中出现真码 可做内存注册机
    004D0051   .  66:8985 1CFFFFFF mov word ptr ss:[ebp-0xE4],ax
    004D0058   .  8D45 80          lea eax,dword ptr ss:[ebp-0x80]
    004D005B   .  50               push eax
    004D005C   .  8D4D 90          lea ecx,dword ptr ss:[ebp-0x70]
    004D005F   .  51               push ecx
    004D0060   .  8D55 A0          lea edx,dword ptr ss:[ebp-0x60]
    004D0063   .  52               push edx
    004D0064   .  6A 03            push 0x3
    004D0066   .  FF15 3C104000    call dword ptr ds:[<&MSVBVM60.__vbaFre>                 
    004D006C      83C4 10          add esp,0x10
    004D006F      0FBF85 1CFFFFFF  movsx eax,word ptr ss:[ebp-0xE4]
    004D0076      85C0             test eax,eax
    004D0078      0F84 F2030000    je 文件批量.004D0470                                                      ;  关键跳
    004D007E   .  C745 FC 09000000 mov dword ptr ss:[ebp-0x4],0x9
    004D0085   .  8B0D 58405200    mov ecx,dword ptr ds:[0x524058]
    ………………………………………………………………………………………………………省略去中间N多代码
    004D0362   .  8B08             mov ecx,dword ptr ds:[eax]
    004D0364   .  898D 1CFFFFFF    mov dword ptr ss:[ebp-0xE4],ecx
    004D036A   .  68 7C3A4900      push 文件批量.00493A7C                     ;  文件批量重命名 注册版
    004D036F   .  8B95 1CFFFFFF    mov edx,dword ptr ss:[ebp-0xE4]
    004D0375   .  8B02             mov eax,dword ptr ds:[edx]
    ………………………………………………………………………………………………………省略去中间N多代码
    004D04AD   .  8D95 40FFFFFF    lea edx,dword ptr ss:[ebp-0xC0]
    004D04B3   .  8D4D 90          lea ecx,dword ptr ss:[ebp-0x70]
    004D04B6   .  FF15 90124000    call dword ptr ds:[<&MSVBVM60.__vbaVar>;  msvbvm60.__vbaVarDup
    004D04BC   .  C785 58FFFFFF 98>mov dword ptr ss:[ebp-0xA8],文件批量.00493>;  注册码错误,请重新输入!
    004D04C6   .  C785 50FFFFFF 08>mov dword ptr ss:[ebp-0xB0],0x8
    004D04D0   .  8D95 50FFFFFF    lea edx,dword ptr ss:[ebp-0xB0]
    004D04D6   .  8D4D A0          lea ecx,dword ptr ss:[ebp-0x60]
    004D04D9   .  FF15 90124000    call dword ptr ds:[<&MSVBVM60.__vbaVar>;  msvbvm60.__vbaVarDup
    004D04DF   .  8D8D 70FFFFFF    lea ecx,dword ptr ss:[ebp-0x90]

    3、F7进 算法CALL,此时看到有三处调用分别为:
          1)004C6603   .  E8 98020000      call 文件批量.004C68A0                     ;  启动验证调用         调用 1
          2)004D0034   .  E8 6768FFFF      call 文件批量.004C68A0                     ;  注册验证调用         调用 2  
          3)004D09E0   .  E8 BB5EFFFF      call 文件批量.004C68A0                     ;  关于功能调用          调用 3
    4、来到三处的段分别下断,得重程序F9运行,断在启动和注册的段首,F8向走程序检安装目录下"User"文件夹下文件名为“renamefile.txt”的Key文件是否存在,如Key不存在就跳向注册,如果存在就向下走来到验证Key文件里的注册信息是否正确;
    代码:

    004C637D   .  8BD0             mov edx,eax
    004C637F   .  8D4D C8          lea ecx,dword ptr ss:[ebp-0x38]
    004C6382   .  FF15 BC124000    call dword ptr ds:[<&MSVBVM60.__vbaStr>;  msvbvm60.__vbaStrMove
    004C6388   .  8D4D C0          lea ecx,dword ptr ss:[ebp-0x40]
    004C638B   .  FF15 04134000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;  msvbvm60.__vbaFreeStr
    004C6391   .  8D4D B8          lea ecx,dword ptr ss:[ebp-0x48]
    004C6394   .  FF15 08134000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;  msvbvm60.__vbaFreeObj
    004C639A   .  C745 FC 03000000 mov dword ptr ss:[ebp-0x4],0x3
    004C63A1   .  6A FF            push -0x1                              ; /OnErrEvent = Resume Next
    004C63A3   .  FF15 C0104000    call dword ptr ds:[<&MSVBVM60.__vbaOnE>; \__vbaOnError
    004C63A9   .  C745 FC 04000000 mov dword ptr ss:[ebp-0x4],0x4
    004C63B0   .  8D4D C8          lea ecx,dword ptr ss:[ebp-0x38]
    004C63B3   .  51               push ecx
    004C63B4   .  E8 87FDFFFF      call 文件批量.004C6140                   ;验证Ke文件是否存在
    004C63B9      0FBFD0           movsx edx,ax
    004C63BC   .  85D2             test edx,edx
    004C63BE   .  0F84 6A030000    je 文件批量.004C672E                  ;如Key不存在就跳向注册,如果存在就向下走来到验证Key文件里的注册信息是否正确;
    004C63C4   .  C745 FC 05000000 mov dword ptr ss:[ebp-0x4],0x5
    004C63CB   .  8B45 C8          mov eax,dword ptr ss:[ebp-0x38]

    5、以下分别为三处调用验证处:
    代码:
    1)、启动验证调用     调用 1
    004C6602   .  51               push ecx
    004C6603   .  E8 98020000      call 文件批量.004C68A0                     ; 启动验证 调用算法CLL 1
    004C6608   .  8BD0             mov edx,eax
    004C660A   .  8D4D BC          lea ecx,dword ptr ss:[ebp-0x44]
    004C660D   .  FF15 BC124000    call dword ptr ds:[<&MSVBVM60.__vbaStr>;  msvbvm60.__vbaStrMove
    004C6613   .  50               push eax
    004C6614   .  FF15 F4104000    call dword ptr ds:[<&MSVBVM60.__vbaStr>;  msvbvm60.__vbaStrTextCmp
    004C661A   .  F7D8             neg eax
    004C661C   .  1BC0             sbb eax,eax
    004C661E   .  40               inc eax
    004C661F   .  F7D8             neg eax
    004C6621   .  66:23F0          and si,ax
    004C6624   .  66:8975 80       mov word ptr ss:[ebp-0x80],si
    004C6628   .  8D55 BC          lea edx,dword ptr ss:[ebp-0x44]
    004C662B   .  52               push edx
    004C662C   .  8D45 C0          lea eax,dword ptr ss:[ebp-0x40]
    004C662F   .  50               push eax
    004C6630   .  6A 02            push 0x2
    004C6632   .  FF15 50124000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;  msvbvm60.__vbaFreeStrList
    004C6638   .  83C4 0C          add esp,0xC
    004C663B      0FBF4D 80        movsx ecx,word ptr ss:[ebp-0x80]
    004C663F   .  85C9             test ecx,ecx
    004C6641      0F84 E2000000    je 文件批量.004C6729                                   ;爆破点:关键跳 修改为: je 004C6647
    004C6647   .  C745 FC 0C000000 mov dword ptr ss:[ebp-0x4],0xC


    2)注册验证调用         调用 2
    004D002E   .  FF15 EC104000    call dword ptr ds:[<&MSVBVM60.#520>]   ;  msvbvm60.rtcTrimVar
    004D0034   .  E8 6768FFFF      call 文件批量.004C68A0                     ; 算法CALL  调用 2  注册时调用
    004D0039   .  8945 88          mov dword ptr ss:[ebp-0x78],eax        ;  真码   (UNICODE "AFFX-FFR0-ADX2-EPL6")
    004D003C   .  C745 80 08800000 mov dword ptr ss:[ebp-0x80],0x8008
    004D0043   .  8D4D 90          lea ecx,dword ptr ss:[ebp-0x70]
    004D0046   .  51               push ecx                               ; /var18
    004D0047   .  8D55 80          lea edx,dword ptr ss:[ebp-0x80]        ; |
    004D004A   .  52               push edx                               ; |var28
    004D004B   .  FF15 44114000    call dword ptr ds:[<&MSVBVM60.__vbaVar>; \      ;关键CALL  VB的比较函数 eax中出现真码 可做内存注册机
    004D0051   .  66:8985 1CFFFFFF mov word ptr ss:[ebp-0xE4],ax
    004D0058   .  8D45 80          lea eax,dword ptr ss:[ebp-0x80]
    004D005B   .  50               push eax
    004D005C   .  8D4D 90          lea ecx,dword ptr ss:[ebp-0x70]
    004D005F   .  51               push ecx
    004D0060   .  8D55 A0          lea edx,dword ptr ss:[ebp-0x60]
    004D0063   .  52               push edx
    004D0064   .  6A 03            push 0x3
    004D0066   .  FF15 3C104000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;
    004D006C      83C4 10          add esp,0x10
    004D006F      0FBF85 1CFFFFFF  movsx eax,word ptr ss:[ebp-0xE4]
    004D0076      85C0             test eax,eax
    004D0078      0F84 F2030000    je 文件批量.004D0470                       ; 爆破点: 关键跳修改为:je 004D007E
    004D007E   .  C745 FC 09000000 mov dword ptr ss:[ebp-0x4],0x9

    3)关于功能调用          调用 3                 
    004D09DA   .  FF15 F4124000    call dword ptr ds:[<&MSVBVM60.__vbaAry>;  msvbvm60.__vbaAryUnlock
    004D09E0   .  E8 BB5EFFFF      call 文件批量.004C68A0                     ; 算法CALL  调用 3  关于功能
    004D09E5   .  8945 B4          mov dword ptr ss:[ebp-0x4C],eax
    004D09E8   .  C745 AC 08800000 mov dword ptr ss:[ebp-0x54],0x8008
    004D09EF   .  8D4D BC          lea ecx,dword ptr ss:[ebp-0x44]
    004D09F2   .  51               push ecx                               ; /var18
    004D09F3   .  8D55 AC          lea edx,dword ptr ss:[ebp-0x54]        ; |
    004D09F6   .  52               push edx                               ; |var28
    004D09F7   .  FF15 44114000    call dword ptr ds:[<&MSVBVM60.__vbaVar>; \__vbaVarTstEq
    004D09FD   .  66:8945 80       mov word ptr ss:[ebp-0x80],ax
    004D0A01   .  8D45 AC          lea eax,dword ptr ss:[ebp-0x54]
    004D0A04   .  50               push eax
    004D0A05   .  8D4D BC          lea ecx,dword ptr ss:[ebp-0x44]
    004D0A08   .  51               push ecx
    004D0A09   .  6A 02            push 0x2
    004D0A0B   .  FF15 3C104000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;  msvbvm60.__vbaFreeVarList
    004D0A11   .  83C4 0C          add esp,0xC
    004D0A14      0FBF55 80        movsx edx,word ptr ss:[ebp-0x80]
    004D0A18      85D2             test edx,edx
    004D0A1A      0F84 F4020000    je 文件批量.004D0D14                                       ; 爆破点: 关键跳修改为:je 004D0A20
    004D0A20   .  C745 FC 0C000000 mov dword ptr ss:[ebp-0x4],0xC


    6、同时修改以上三处跳转保存达到爆破;

    7、
    机器码:1326-6360-1288-5849
    注册码:AFFX-FFR0-ADX2-EPL6
    ----------------------------------------------------------------------------------------------------------------------------
    【破解总结】:
    1、字符串没加密,容易切入注册验证流程中;

    2、从Key文件下手,可以下API断点切入验证体系,我们一看到那个叫"User"文件夹的名字(可理解为放用户信息用)跟里面是为空(隐藏属性),要能联想得到注册信息,这个慢慢总结吧;
    ----------------------------------------------------------------------------------------------------------------------------
    【版权声明】:
    本文原创于geekcat,转载请注明作者并保存文章的完整!
    文件批量重命名4.20-loader.rar (18.49 KB, 下载次数: 90)


    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-5-24 12:54
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-6-29 18:20:08 来自手机 | 显示全部楼层
    关键call你再确认下

    点评

    谢谢指出 之前是我在做内存注册机问题理解有误 现在知道了!  详情 回复 发表于 2014-6-29 18:47
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

     楼主| 发表于 2014-6-29 18:47:21 | 显示全部楼层
    mod5689 发表于 2014-6-29 18:20
    关键call你再确认下

    谢谢指出
    之前是我在做内存注册机问题理解有误
    现在知道了!
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-10-9 11:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-6-29 20:21:00 | 显示全部楼层
    学习了,谢谢分享
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-11-19 11:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-6-29 21:19:03 | 显示全部楼层
    VB跟踪分析技术还有待提高。

    点评

    今天重新把这个软件分析了,更新了帖子如果还有问题请指出; 对于算法目前能力还不够没有分析;  详情 回复 发表于 2014-6-30 16:51
    正在努力中,今天上午把这个程序再好好分析;分析好了再修改帖子!  详情 回复 发表于 2014-6-30 08:48
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 121 天

    [LV.7]常住居民III

    发表于 2014-6-29 22:00:14 | 显示全部楼层
    今天追码是追出了,但是爆破后重新运行 还是出现未注册 必须重新注册,后来没有时间搞了,现在也没有清楚是什么回事
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    7 小时前
  • 签到天数: 1465 天

    [LV.10]以坛为家III

    发表于 2014-6-30 08:19:35 | 显示全部楼层
    学习了,感谢分享啦
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

     楼主| 发表于 2014-6-30 08:48:02 | 显示全部楼层
    DaShanRen 发表于 2014-6-29 21:19
    VB跟踪分析技术还有待提高。

    正在努力中,今天上午把这个程序再好好分析;分析好了再修改帖子!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

     楼主| 发表于 2014-6-30 16:51:19 | 显示全部楼层
    DaShanRen 发表于 2014-6-29 21:19
    VB跟踪分析技术还有待提高。

    今天重新把这个软件分析了,更新了帖子如果还有问题请指出;
    对于算法目前能力还不够没有分析;
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2014-7-15 16:50:08 | 显示全部楼层
    感谢,学习了!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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