吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3309|回复: 10

[转载技术] 文件批量重命名 V4.20 爆破+追码+Loader补丁

  [复制链接]
Shark_鹏 发表于 2015-3-24 22:37 | 显示全部楼层 |阅读模式

【软件名称】: 文件批量重命名 V4.20   
【软件大小】: 1.80 MB (1,893,420 字节)
【加壳方式】: 无
【保护方式】: 注册码
【编写语言】: Microsoft Visual Basic 5.0 / 6.0
【使用工具】: OD、PEID
【操作平台】: XP SP3
【逆向声明】:逆向在于交流思路和过程,结果并不重要,请不要用于非法用途;
【软件介绍】:文件批量重命名软件是目前最方便快捷、功能最强大的文件批量重命名工具。
--------------------------------------------------------------------------------------------------------------------------------
【逆向过程】

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"文件夹的名字(可理解为放用户信息用)跟里面是为空(隐藏属性),要能联想得到注册信息,这个慢慢总结吧;


评分

参与人数 24HB +29 THX +17 收起 理由
attackmyth + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
sjtkxy + 1 + 1
24567 + 1
ACZR + 2
Jawon + 1
Soul1999 + 1
李卓吾 + 1
后学真 + 1
娄胖胖 + 1
VipDongle + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
消逝的过去 + 1
飞刀梦想 + 1
l278785481 + 1
xgbnapsua + 1
jaunic + 1
ldljlzw + 1
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
lies + 1
muker + 1
逍遥枷锁 + 4 + 1 好人有好报!你的热心我永远不忘!谢谢!
雨季 + 2 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
王婆卖瓜 + 5 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
Desire + 3 + 1 评分=感恩!简单却充满爱!感谢您的作品!!.
Shark恒 + 5 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
michael_cjm 发表于 2018-3-8 11:39 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
别管我了行 发表于 2022-3-10 04:34 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
ldljlzw 发表于 2022-3-10 09:59 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2022-11-4 18:19 | 显示全部楼层

感谢楼主分享,学到老!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2022-11-23 20:39 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一生逍遥 发表于 2022-12-16 07:44 | 显示全部楼层

代码也不会,女朋友也没有 。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2023-4-17 09:02 | 显示全部楼层

好东西赶紧拿走
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
一生逍遥 发表于 2023-5-13 18:44 | 显示全部楼层

好好来学习一下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
请你上车 发表于 2023-6-16 12:56 | 显示全部楼层

学习一下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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