- UID
- 56300
注册时间2008-9-7
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 开心 2024-8-15 13:22 |
---|
签到天数: 8 天 [LV.3]偶尔看看II
|
MP3 Splitter 3.1.1.0 汉化版算法分析 BY:NEXT 2010.2.2
下载地址:http://www.skycn.com/soft/3603.html
直接下载:http://125.46.13.254:82/down/HA_MP3Splitter3.110fix_LRH.zip
软件介绍:
MP3 Splitter 3.1.1.0 汉化版
一款易用的Mp3分割工具。可以把大的Mp3文件切割成若干小的Mp3文件,
集成了Mp3播放器可以在分割之前试听,并支持根据文件大小或时间等进行分割。
PECompact 2.x -> Jeremy Collake
不脱壳直接分析算法,先到达OEP,然后查找字符串下断点:
ESP定律到达OEP:
00413593 > $ B8 B8924400 mov eax,MP3_Spli.004492B8 ; 载入程序后停在这里,F8两次
00413598 ? 50 push eax
00413599 ? 64:FF35 00000>push dword ptr fs:[0] ; hr esp,运行四次
--------------------------------------------------------------------------------------------------
7C953FA2 3B45 F8 cmp eax,dword ptr ss:[ebp-8] ; 一次
7C953FA5 72 09 jb short ntdll.7C953FB0
7C953FA7 3B45 F4 cmp eax,dword ptr ss:[ebp-C]
7C953FAA 0F82 D30E0000 jb ntdll.7C954E83
7C953FB0 50 push eax
7C953FB1 E8 67000000 call ntdll.7C95401D
7C953FB6 84C0 test al,al
7C953FB8 0F84 C50E0000 je ntdll.7C954E83
7C953FBE F605 FAE3997C 8>test byte ptr ds:[7C99E3FA],80
7C953FC5 0F85 98C10100 jnz ntdll.7C970163
7C953FCB FF73 04 push dword ptr ds:[ebx+4]
7C953FCE 8D45 EC lea eax,dword ptr ss:[ebp-14] ; 二次
7C953FD1 50 push eax
7C953FD2 FF75 0C push dword ptr ss:[ebp+C]
7C953FD5 53 push ebx
7C953FD6 56 push esi
--------------------------------------------------------------------------------------------------
004492EB 53 push ebx ; 三次
004492EC 51 push ecx
004492ED 57 push edi
004492EE 56 push esi
004492EF 52 push edx
--------------------------------------------------------------------------------------------------
0044937A - FFE0 jmp eax ; 四次到这里,F8到OEP!
0044937C 93 xchg eax,ebx
0044937D 35 41000000 xor eax,41
00449382 0000 add byte ptr ds:[eax],al
--------------------------------------------------------------------------------------------------
00413593 > $ 6A 60 push 60 ; 程序OEP
00413595 . 68 002D4300 push MP3_Spli.00432D00
0041359A . E8 350E0000 call MP3_Spli.004143D4
0041359F . BF 94000000 mov edi,94
004135A4 . 8BC7 mov eax,edi
004135A6 . E8 C5EBFFFF call MP3_Spli.00412170
004135AB . 8965 E8 mov dword ptr ss:[ebp-18],esp
004135AE . 8BF4 mov esi,esp
004135B0 . 893E mov dword ptr ds:[esi],edi
004135B2 . 56 push esi ; /pVersionInformation
004135B3 . FF15 9CE24200 call dword ptr ds:[42E29C] ; \GetVersionExA
--------------------------------------------------------------------------------------------------
很奇怪,程序载入后跟OEP竟然是一个地址,但是载入后查找字符串什么都看不到,本人很菜,希望前辈指点一下!
00413593 > $ B8 B8924400 mov eax,MP3_Spli.004492B8 ; 载入程序后停在这里,F8两次
00413593 > $ 6A 60 push 60 ; 程序OEP
--------------------------------------------------------------------------------------------------
查找字符串,然后跟随到代码找段首下断点开始分析:
超级字串参考
地址 反汇编 文本字串
00401010 mov eax,MP3_Spli.0042E5B0 |\tC
00401752 push MP3_Spli.0042E81C 请输入正确的注册名!
00401770 push MP3_Spli.0042E7F4 请输入正确的注册码!
0040199E push MP3_Spli.0042E7D8 注册成功!o(∩_∩)o
004019B4 push MP3_Spli.0042E7CC username
004019B9 push MP3_Spli.0042E7C4 Option
004019D1 push MP3_Spli.0042E7B0 registration_code
004019D6 push MP3_Spli.0042E7C4 Option
004019F4 push MP3_Spli.0042E798 注册失败!
00401CA2 push MP3_Spli.0042CE08 感bC
无关紧要的代码就不贴了,直接看下面的算法分析过程
算法分析:
0040195E > \8A5424 19 mov dl,byte ptr ss:[esp+19] ; //开始算法分析
00401962 . B0 39 mov al,39 ; //eax低位置39H
00401964 . 3AD0 cmp dl,al ; //试炼码第一位与真码第一位比较→第一位=9
00401966 . 0F85 84000000 jnz MP3_Spli.004019F0 ; //不相等则跳向注册失败!
0040196C . 807C24 13 33 cmp byte ptr ss:[esp+13],33 ; //试炼码第二位与33H比较→第二位=3
00401971 . 75 7D jnz short MP3_Spli.004019F0 ; //不相等则跳向注册失败!
00401973 . 384424 14 cmp byte ptr ss:[esp+14],al ; //试炼码第三位与39H比较→第三位=9
00401977 . 75 77 jnz short MP3_Spli.004019F0 ; //不相等则跳向注册失败!
00401979 . 8A5424 15 mov dl,byte ptr ss:[esp+15] ; //试炼码第四位存入dl
0040197D . B0 31 mov al,31 ; //31H存入al
0040197F . 3AD0 cmp dl,al ; //比较dl,al→第四位=1
00401981 . 75 6D jnz short MP3_Spli.004019F0 ; //不相等则跳向注册失败!
00401983 . 80F9 33 cmp cl,33 ; //试炼码第五位与33H比较→第五位=3
00401986 . 75 68 jnz short MP3_Spli.004019F0 ; //不相等则跳向注册失败!
00401988 . 384424 1A cmp byte ptr ss:[esp+1A],al ; //试炼码第六位与37H比较→第六位=1
0040198C . 75 62 jnz short MP3_Spli.004019F0 ; //不相等则跳向注册失败!
0040198E . 807C24 1B 34 cmp byte ptr ss:[esp+1B],34 ; //试炼码第七位与34H比较→第七位=4
00401993 . 75 5B jnz short MP3_Spli.004019F0 ; //不相等则跳向注册失败!
00401995 . 80FB 36 cmp bl,36 ; //试炼码第八位与36H比较→第八位=6
00401998 . 75 56 jnz short MP3_Spli.004019F0 ; //不相等则跳向注册失败!
0040199A > 6A 00 push 0
0040199C . 6A 00 push 0
0040199E . 68 D8E74200 push MP3_Spli.0042E7D8 ; 注册成功!o(∩_∩)o
注册码为固定码:93913146
胜利截图:
|
评分
-
查看全部评分
|