欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

MP3 Joiner 1.22 算法分析

程序员文章站 2022-06-21 16:47:11
missviola,零客网安 MP3 Joiner 是一款简单易用的把多个 MP3 文件连接成一个大的 MP3 文件的工具: 1、 不需要重新压缩,连接速度快; 2、 支持文件拖放连...

missviola,零客网安

MP3 Joiner 是一款简单易用的把多个 MP3 文件连接成一个大的 MP3 文件的工具:

1、 不需要重新压缩,连接速度快;

2、 支持文件拖放连接;

3、 连接的 MP3 文件必须是相同的压缩参数。

首先PEID查壳,显示为C++编写,用OD载入,查找字符串,找到“Registration has succeeded!”,双击,往上拉,在00404683下断点,输入注册名viola,假码12345678,点击register,程序断下,F8单步走。

00404683      55              push ebp
00404684      56              push esi
00404685      57              push edi
00404686      BF 01000000    mov edi,1
0040468B      57              push edi
0040468C      8BF1            mov esi,ecx
0040468E      E8 D4AD0100    call MP3Joine.0041F467
00404693      8B46 70        mov eax,dword ptr ds:[esi+70]
00404696      8B68 F4        mov ebp,dword ptr ds:[eax-C]
00404699      83FD 02        cmp ebp,2                                    ; 注册名长度要大于2
0040469C      7D 15          jge short MP3Joine.004046B3
0040469E      6A 00          push 0
004046A0      6A 00          push 0
004046A2      68 E4CF4200    push MP3Joine.0042CFE4                      ; ASCII "Please input correct User Name!"
004046A7      E8 840B0200    call MP3Joine.00425230
004046AC      5F              pop edi
004046AD      5E              pop esi
004046AE      5D              pop ebp
004046AF      83C4 0C        add esp,0C
004046B2      C3              retn
004046B3      8B4E 74        mov ecx,dword ptr ds:[esi+74]
004046B6      8379 F4 08      cmp dword ptr ds:[ecx-C],8                  ; 注册码长度要大于8
004046BA      7D 15          jge short MP3Joine.004046D1
004046BC      6A 00          push 0
004046BE      6A 00          push 0
004046C0      68 BCCF4200    push MP3Joine.0042CFBC                      ; ASCII "Please input correct Registration Code!"
004046C5      E8 660B0200    call MP3Joine.00425230
004046CA      5F              pop edi
004046CB      5E              pop esi
004046CC      5D              pop ebp
004046CD      83C4 0C        add esp,0C
004046D0      C3              retn
004046D1      8B46 70        mov eax,dword ptr ds:[esi+70]
004046D4      8B48 F4        mov ecx,dword ptr ds:[eax-C]
004046D7      85C9            test ecx,ecx
004046D9      7D 0A          jge short MP3Joine.004046E5
004046DB      68 57000780    push 80070057
004046E0      E8 5BCDFFFF    call MP3Joine.00401440
004046E5      8A10            mov dl,byte ptr ds:[eax]
004046E7      8B46 70        mov eax,dword ptr ds:[esi+70]                ; 注册名第一位进eax
004046EA      3978 F4        cmp dword ptr ds:[eax-C],edi                ; 同注册名长度比较
004046ED      7D 0A          jge short MP3Joine.004046F9                  ; 大于就跳
004046EF      68 57000780    push 80070057
004046F4      E8 47CDFFFF    call MP3Joine.00401440
004046F9      8A40 01        mov al,byte ptr ds:[eax+1]                  ; 注册名第二位进al
004046FC      884424 0E      mov byte ptr ss:[esp+E],al
00404700      8B46 70        mov eax,dword ptr ds:[esi+70]
00404703      8B48 F4        mov ecx,dword ptr ds:[eax-C]
00404706      85C9            test ecx,ecx
00404708      7D 0A          jge short MP3Joine.00404714
0040470A      68 57000780    push 80070057
0040470F      E8 2CCDFFFF    call MP3Joine.00401440
00404714      8B4E 70        mov ecx,dword ptr ds:[esi+70]
00404717      53              push ebx
00404718      8A18            mov bl,byte ptr ds:[eax]   &