Shark_鹏 发表于 2015-3-24 22:37

文件批量重命名 V4.20 爆破+追码+Loader补丁

【软件名称】: 文件批量重命名 V4.20   
【软件大小】: 1.80 MB (1,893,420 字节)
【加壳方式】: 无
【保护方式】: 注册码
【编写语言】: Microsoft Visual Basic 5.0 / 6.0
【使用工具】: OD、PEID
【操作平台】: XP SP3【下载地址】:http://www.crsky.com/soft/28815.html【逆向声明】:逆向在于交流思路和过程,结果并不重要,请不要用于非法用途;
【软件介绍】:文件批量重命名软件是目前最方便快捷、功能最强大的文件批量重命名工具。--------------------------------------------------------------------------------------------------------------------------------【逆向过程】
1、软件没有壳VB写的,直接OD载入F9运行输入注册信息后有错误提示 “注册码错误,请重新输入!”2、搜索字符串,找到错误提示双击来到汇编窗口,向上找到关键CALL和关键跳;代码:
004D002D   .50               push eax004D002E   .FF15 EC104000    call dword ptr ds:[<&MSVBVM60.#520>]   ;msvbvm60.rtcTrimVar004D0034   .E8 6768FFFF      call 文件批量.004C68A0                                             ;算法CALL调用 2注册时调用004D0039   .8945 88          mov dword ptr ss:,eax                              ;真码   (UNICODE "AFFX-FFR0-ADX2-EPL6")004D003C   .C745 80 08800000 mov dword ptr ss:,0x8008004D0043   .8D4D 90          lea ecx,dword ptr ss:004D0046   .51               push ecx                               ; /var18004D0047   .8D55 80          lea edx,dword ptr ss:      ; |004D004A   .52               push edx                               ; |var28004D004B   .FF15 44114000    call dword ptr ds:[<&MSVBVM60.__vbaVar>                ; 比较真假码的关键CALLVB的比较函数 eax中出现真码 可做内存注册机004D0051   .66:8985 1CFFFFFF mov word ptr ss:,ax004D0058   .8D45 80          lea eax,dword ptr ss:004D005B   .50               push eax004D005C   .8D4D 90          lea ecx,dword ptr ss:004D005F   .51               push ecx004D0060   .8D55 A0          lea edx,dword ptr ss:004D0063   .52               push edx004D0064   .6A 03            push 0x3004D0066   .FF15 3C104000    call dword ptr ds:[<&MSVBVM60.__vbaFre>               004D006C      83C4 10          add esp,0x10004D006F      0FBF85 1CFFFFFFmovsx eax,word ptr ss:004D0076      85C0             test eax,eax004D0078      0F84 F2030000    je 文件批量.004D0470                                                      ;关键跳004D007E   .C745 FC 09000000 mov dword ptr ss:,0x9004D0085   .8B0D 58405200    mov ecx,dword ptr ds:………………………………………………………………………………………………………省略去中间N多代码004D0362   .8B08             mov ecx,dword ptr ds:004D0364   .898D 1CFFFFFF    mov dword ptr ss:,ecx004D036A   .68 7C3A4900      push 文件批量.00493A7C                     ;文件批量重命名 注册版004D036F   .8B95 1CFFFFFF    mov edx,dword ptr ss:004D0375   .8B02             mov eax,dword ptr ds:………………………………………………………………………………………………………省略去中间N多代码004D04AD   .8D95 40FFFFFF    lea edx,dword ptr ss:004D04B3   .8D4D 90          lea ecx,dword ptr ss:004D04B6   .FF15 90124000    call dword ptr ds:[<&MSVBVM60.__vbaVar>;msvbvm60.__vbaVarDup004D04BC   .C785 58FFFFFF 98>mov dword ptr ss:,文件批量.00493>;注册码错误,请重新输入!004D04C6   .C785 50FFFFFF 08>mov dword ptr ss:,0x8004D04D0   .8D95 50FFFFFF    lea edx,dword ptr ss:004D04D6   .8D4D A0          lea ecx,dword ptr ss:004D04D9   .FF15 90124000    call dword ptr ds:[<&MSVBVM60.__vbaVar>;msvbvm60.__vbaVarDup004D04DF   .8D8D 70FFFFFF    lea ecx,dword ptr ss:
3、F7进 算法CALL,此时看到有三处调用分别为:      1)004C6603   .E8 98020000      call 文件批量.004C68A0                     ;启动验证调用         调用 1      2)004D0034   .E8 6768FFFF      call 文件批量.004C68A0                     ;注册验证调用         调用 2      3)004D09E0   .E8 BB5EFFFF      call 文件批量.004C68A0                     ;关于功能调用          调用 34、来到三处的段分别下断,得重程序F9运行,断在启动和注册的段首,F8向走程序检安装目录下"User"文件夹下文件名为“renamefile.txt”的Key文件是否存在,如Key不存在就跳向注册,如果存在就向下走来到验证Key文件里的注册信息是否正确;代码:
004C637D   .8BD0             mov edx,eax004C637F   .8D4D C8          lea ecx,dword ptr ss:004C6382   .FF15 BC124000    call dword ptr ds:[<&MSVBVM60.__vbaStr>;msvbvm60.__vbaStrMove004C6388   .8D4D C0          lea ecx,dword ptr ss:004C638B   .FF15 04134000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;msvbvm60.__vbaFreeStr004C6391   .8D4D B8          lea ecx,dword ptr ss:004C6394   .FF15 08134000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;msvbvm60.__vbaFreeObj004C639A   .C745 FC 03000000 mov dword ptr ss:,0x3004C63A1   .6A FF            push -0x1                              ; /OnErrEvent = Resume Next004C63A3   .FF15 C0104000    call dword ptr ds:[<&MSVBVM60.__vbaOnE>; \__vbaOnError004C63A9   .C745 FC 04000000 mov dword ptr ss:,0x4004C63B0   .8D4D C8          lea ecx,dword ptr ss:004C63B3   .51               push ecx004C63B4   .E8 87FDFFFF      call 文件批量.004C6140                   ;验证Ke文件是否存在004C63B9      0FBFD0         movsx edx,ax004C63BC   .85D2             test edx,edx004C63BE   .0F84 6A030000    je 文件批量.004C672E                  ;如Key不存在就跳向注册,如果存在就向下走来到验证Key文件里的注册信息是否正确;004C63C4   .C745 FC 05000000 mov dword ptr ss:,0x5004C63CB   .8B45 C8          mov eax,dword ptr ss:
5、以下分别为三处调用验证处:代码:1)、启动验证调用   调用 1004C6602   .51               push ecx004C6603   .E8 98020000      call 文件批量.004C68A0                     ; 启动验证 调用算法CLL 1004C6608   .8BD0             mov edx,eax004C660A   .8D4D BC          lea ecx,dword ptr ss:004C660D   .FF15 BC124000    call dword ptr ds:[<&MSVBVM60.__vbaStr>;msvbvm60.__vbaStrMove004C6613   .50               push eax004C6614   .FF15 F4104000    call dword ptr ds:[<&MSVBVM60.__vbaStr>;msvbvm60.__vbaStrTextCmp004C661A   .F7D8             neg eax004C661C   .1BC0             sbb eax,eax004C661E   .40               inc eax004C661F   .F7D8             neg eax004C6621   .66:23F0          and si,ax004C6624   .66:8975 80       mov word ptr ss:,si004C6628   .8D55 BC          lea edx,dword ptr ss:004C662B   .52               push edx004C662C   .8D45 C0          lea eax,dword ptr ss:004C662F   .50               push eax004C6630   .6A 02            push 0x2004C6632   .FF15 50124000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;msvbvm60.__vbaFreeStrList004C6638   .83C4 0C          add esp,0xC004C663B      0FBF4D 80      movsx ecx,word ptr ss:004C663F   .85C9             test ecx,ecx004C6641      0F84 E2000000    je 文件批量.004C6729                                 ;爆破点:关键跳 修改为: je 004C6647004C6647   .C745 FC 0C000000 mov dword ptr ss:,0xC

2)注册验证调用         调用 2004D002E   .FF15 EC104000    call dword ptr ds:[<&MSVBVM60.#520>]   ;msvbvm60.rtcTrimVar004D0034   .E8 6768FFFF      call 文件批量.004C68A0                     ; 算法CALL调用 2注册时调用004D0039   .8945 88          mov dword ptr ss:,eax      ;真码   (UNICODE "AFFX-FFR0-ADX2-EPL6")004D003C   .C745 80 08800000 mov dword ptr ss:,0x8008004D0043   .8D4D 90          lea ecx,dword ptr ss:004D0046   .51               push ecx                               ; /var18004D0047   .8D55 80          lea edx,dword ptr ss:      ; |004D004A   .52               push edx                               ; |var28004D004B   .FF15 44114000    call dword ptr ds:[<&MSVBVM60.__vbaVar>; \      ;关键CALLVB的比较函数 eax中出现真码 可做内存注册机004D0051   .66:8985 1CFFFFFF mov word ptr ss:,ax004D0058   .8D45 80          lea eax,dword ptr ss:004D005B   .50               push eax004D005C   .8D4D 90          lea ecx,dword ptr ss:004D005F   .51               push ecx004D0060   .8D55 A0          lea edx,dword ptr ss:004D0063   .52               push edx004D0064   .6A 03            push 0x3004D0066   .FF15 3C104000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;004D006C      83C4 10          add esp,0x10004D006F      0FBF85 1CFFFFFFmovsx eax,word ptr ss:004D0076      85C0             test eax,eax004D0078      0F84 F2030000    je 文件批量.004D0470                     ; 爆破点: 关键跳修改为:je 004D007E004D007E   .C745 FC 09000000 mov dword ptr ss:,0x9
3)关于功能调用          调用 3               004D09DA   .FF15 F4124000    call dword ptr ds:[<&MSVBVM60.__vbaAry>;msvbvm60.__vbaAryUnlock004D09E0   .E8 BB5EFFFF      call 文件批量.004C68A0                     ; 算法CALL调用 3关于功能004D09E5   .8945 B4          mov dword ptr ss:,eax004D09E8   .C745 AC 08800000 mov dword ptr ss:,0x8008004D09EF   .8D4D BC          lea ecx,dword ptr ss:004D09F2   .51               push ecx                               ; /var18004D09F3   .8D55 AC          lea edx,dword ptr ss:      ; |004D09F6   .52               push edx                               ; |var28004D09F7   .FF15 44114000    call dword ptr ds:[<&MSVBVM60.__vbaVar>; \__vbaVarTstEq004D09FD   .66:8945 80       mov word ptr ss:,ax004D0A01   .8D45 AC          lea eax,dword ptr ss:004D0A04   .50               push eax004D0A05   .8D4D BC          lea ecx,dword ptr ss:004D0A08   .51               push ecx004D0A09   .6A 02            push 0x2004D0A0B   .FF15 3C104000    call dword ptr ds:[<&MSVBVM60.__vbaFre>;msvbvm60.__vbaFreeVarList004D0A11   .83C4 0C          add esp,0xC004D0A14      0FBF55 80      movsx edx,word ptr ss:004D0A18      85D2             test edx,edx004D0A1A      0F84 F4020000    je 文件批量.004D0D14                                       ; 爆破点: 关键跳修改为:je 004D0A20004D0A20   .C745 FC 0C000000 mov dword ptr ss:,0xC

6、同时修改以上三处跳转保存达到爆破;
7、机器码:1326-6360-1288-5849注册码:AFFX-FFR0-ADX2-EPL6
----------------------------------------------------------------------------------------------------------------------------【逆向总结】:1、字符串没加密,容易切入注册验证流程中;
2、从Key文件下手,可以下API断点切入验证体系,我们一看到那个叫"User"文件夹的名字(可理解为放用户信息用)跟里面是为空(隐藏属性),要能联想得到注册信息,这个慢慢总结吧;

michael_cjm 发表于 2018-3-8 11:39

咋没人赞呀~~~~~ 鼓励,谢谢

别管我了行 发表于 2022-3-10 04:34

ldljlzw 发表于 2022-3-10 09:59

曾经沧海 发表于 2022-11-4 18:19

感谢楼主分享,学到老!

曾经沧海 发表于 2022-11-23 20:39

纯支持一下下,,,

一生逍遥 发表于 2022-12-16 07:44

代码也不会,女朋友也没有 。

曾经沧海 发表于 2023-4-17 09:02

好东西赶紧拿走

一生逍遥 发表于 2023-5-13 18:44

好好来学习一下

请你上车 发表于 2023-6-16 12:56

学习一下
页: [1] 2
查看完整版本: 文件批量重命名 V4.20 爆破+追码+Loader补丁