【破文标题】闪电-视频转换王 5.2.0 算法分析
【破文作者】不甘心
【作者邮箱】lykonglong@qq.com
【作者主页】bbs.8185.cc
【破解工具】PEiD,OD
【破解平台】Windows XP
【软件名称】闪电-视频转换王 5.2.0
【软件大小】7.75 MB
【原版下载】http://www.tv808.com/flash_skycn.exe
【保护方式】ASPack 2.1 -> Alexey Solodovnikov+注册码
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
**********************************************************************************************
【破解内容】
1,运行程序,出现一个注册框,输入错误的注册信息进行检测我输入love,无提示信息!
2,用PEID查壳ASPack 2.1 -> Alexey Solodovnikov这个壳我不演示了,自己脱!我脱出来是Borland Delphi 6.0 - 7.0
3,用DEDE查找按钮事件0052D99C,然后把脱壳好的文件载入OD!
下面我们到0052D99C
0052D99C . 55 PUSH EBP
0052D99D . 8BEC MOV EBP,ESP
0052D99F . B9 07000000 MOV ECX,7
0052D9A4 > 6A 00 PUSH 0
0052D9A6 . 6A 00 PUSH 0
0052D9A8 . 49 DEC ECX
0052D9A9 .^ 75 F9 JNZ SHORT unpack.0052D9A4
0052D9AB . 53 PUSH EBX
0052D9AC . 56 PUSH ESI
0052D9AD . 57 PUSH EDI
0052D9AE . 8BD8 MOV EBX,EAX
0052D9B0 . 33C0 XOR EAX,EAX
0052D9B2 . 55 PUSH EBP
0052D9B3 . 68 CDDB5200 PUSH unpack.0052DBCD
0052D9B8 . 64:FF30 PUSH DWORD PTR FS:[EAX]
0052D9BB . 64:8920 MOV DWORD PTR FS:[EAX],ESP
.......................
...................
...............
来到
0052DAE5 . 8B83 10030000 MOV EAX,DWORD PTR DS:[EBX+310]
0052DAEB . E8 008EF3FF CALL unpack.004668F0
0052DAF0 . 8B45 C8 MOV EAX,DWORD PTR SS:[EBP-38]
0052DAF3 . 8D55 CC LEA EDX,DWORD PTR SS:[EBP-34]
0052DAF6 . E8 7DB5EDFF CALL unpack.00409078
0052DAFB . 837D CC 00 CMP DWORD PTR SS:[EBP-34],0
0052DAFF . 75 0C JNZ SHORT unpack.0052DB0D
0052DB01 . A1 14665300 MOV EAX,DWORD PTR DS:[536614]
0052DB06 . E8 A153F5FF CALL unpack.00482EAC
0052DB0B . EB 26 JMP SHORT unpack.0052DB33
0052DB0D > 8BC3 MOV EAX,EBX
0052DB0F . E8 30030000 CALL unpack.0052DE44 ; 算法Call
0052DB14 . 84C0 TEST AL,AL
0052DB16 . 74 09 JE SHORT unpack.0052DB21
0052DB18 . 8BC3 MOV EAX,EBX
0052DB1A . E8 21010000 CALL unpack.0052DC40
0052DB1F . EB 12 JMP SHORT unpack.0052DB33
我们F7跟进算法CALL
0052DE44 /$ 55 PUSH EBP
0052DE45 |. 8BEC MOV EBP,ESP
0052DE47 |. 83C4 E8 ADD ESP,-18
0052DE4A |. 53 PUSH EBX
0052DE4B |. 56 PUSH ESI
0052DE4C |. 33D2 XOR EDX,EDX
0052DE4E |. 8955 E8 MOV DWORD PTR SS:[EBP-18],EDX
0052DE51 |. 8955 EC MOV DWORD PTR SS:[EBP-14],EDX
0052DE54 |. 8955 F4 MOV DWORD PTR SS:[EBP-C],EDX
0052DE57 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
0052DE5A |. 33C0 XOR EAX,EAX
0052DE5C |. 55 PUSH EBP
0052DE5D |. 68 43DF5200 PUSH unpack.0052DF43
0052DE62 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0052DE65 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0052DE68 |. 33DB XOR EBX,EBX
0052DE6A |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
0052DE6D |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0052DE70 |. 8B80 0C030000 MOV EAX,DWORD PTR DS:[EAX+30C]
0052DE76 |. E8 758AF3FF CALL unpack.004668F0
0052DE7B |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
0052DE7E |. E8 616DEDFF CALL unpack.00404BE4
0052DE83 |. 8BF0 MOV ESI,EAX
0052DE85 |. 85F6 TEST ESI,ESI
0052DE87 |. 7E 38 JLE SHORT unpack.0052DEC1
0052DE89 |. C745 F0 01000>MOV DWORD PTR SS:[EBP-10],1
0052DE90 |> 8D45 EC /LEA EAX,DWORD PTR SS:[EBP-14]
0052DE93 |. 50 |PUSH EAX
0052DE94 |. B9 01000000 |MOV ECX,1
0052DE99 |. 8B55 F0 |MOV EDX,DWORD PTR SS:[EBP-10]
0052DE9C |. 8B45 F4 |MOV EAX,DWORD PTR SS:[EBP-C] ; 用户名
0052DE9F |. E8 A06FEDFF |CALL unpack.00404E44 ; 测试用户名的长度
0052DEA4 |. 8B45 EC |MOV EAX,DWORD PTR SS:[EBP-14]
0052DEA7 |. E8 386FEDFF |CALL unpack.00404DE4
0052DEAC |. 8A00 |MOV AL,BYTE PTR DS:[EAX] ; 取用户名的十六进制存放到AL
0052DEAE |. 25 FF000000 |AND EAX,0FF
0052DEB3 |. 03D8 |ADD EBX,EAX ; 用户名的存放到ebx
0052DEB5 |. 81F3 05FA0B00 |XOR EBX,0BFA05 ; 把用户名ASCII码累加值 跟0BFA05 循环 XOR
0052DEBB |. FF45 F0 |INC DWORD PTR SS:[EBP-10] ; 用户名加一
0052DEBE |. 4E |DEC ESI ; 减用户名的长度1
0052DEBF |.^ 75 CF \JNZ SHORT unpack.0052DE90
上面的循环算法就是把用户名ASCII码累加如果用户的长度是单号那就被XOR
0052DEC1 |> A1 20665300 MOV EAX,DWORD PTR DS:[536620] ; 536620=978B60
0052DEC6 |. 8BD0 MOV EDX,EAX
0052DEC8 |. C1E0 04 SHL EAX,4 ; 978b60 逻辑左移4=0978B600
0052DECB |. 03C2 ADD EAX,EDX ; 0978B600+978b60=0A104160存放到EAX
0052DECD |. 03D8 ADD EBX,EAX ; 1be+0A104160=0A10431E存放到EBX
0052DECF |. 81C3 D4A31300 ADD EBX,13A3D4 ; 0A10431E+13A3D4=0A23E6F2
0052DED5 |. 81F3 8DED5900 XOR EBX,59ED8D ; 0A23E6F2 xor 59ED8D=0A7A0B7F
0052DEDB |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
0052DEDE |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ;
0052DEE1 |. 8B80 10030000 MOV EAX,DWORD PTR DS:[EAX+310]
0052DEE7 |. E8 048AF3FF CALL unpack.004668F0
0052DEEC |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18]
0052DEEF |. E8 0CB5EDFF CALL unpack.00409400
0052DEF4 |. 8BF3 MOV ESI,EBX
0052DEF6 |. 81F6 2473C400 XOR ESI,0C47324 ; 0A7A0B7F xor C47324=0ABE785B
0052DEFC |. 3BC6 CMP EAX,ESI ; 这里他把EAX 跟ESI比较 我们看看EAX是假码的十六进制而ESI是真码的十六进制
0052DEFE |. 75 19 JNZ SHORT unpack.0052DF19 ; 这里是关键跳
0052DF00 |. C645 FB 01 MOV BYTE PTR SS:[EBP-5],1
0052DF04 |. B8 18665300 MOV EAX,unpack.00536618
0052DF09 |. 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C]
0052DF0C |. E8 676AEDFF CALL unpack.00404978
0052DF11 |. 8935 1C665300 MOV DWORD PTR DS:[53661C],ESI
0052DF17 |. EB 04 JMP SHORT unpack.0052DF1D
0052DF19 |> C645 FB 00 MOV BYTE PTR SS:[EBP-5],0
0052DF1D |> 33C0 XOR EAX,EAX
0052DF1F |. 5A POP EDX
0052DF20 |. 59 POP ECX
0052DF21 |. 59 POP ECX
0052DF22 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
0052DF25 |. 68 4ADF5200 PUSH unpack.0052DF4A
0052DF2A |> 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
0052DF2D |. E8 F269EDFF CALL unpack.00404924
0052DF32 |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
0052DF35 |. E8 EA69EDFF CALL unpack.00404924
0052DF3A |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
0052DF3D |. E8 E269EDFF CALL unpack.00404924
0052DF42 \. C3 RETN
【算法总结】
用户名ASCII码累加值+0A104160的值+13A3D4=XXXXX然后把这个值xor 059ED8D=XXXX再xor 0C47324h
((((用户名ASCII码累加值+0A104160)+13A3D4)^059ED8D)^0C47324h)
【算法注册机】
算法比较简单,用keymake作算法注册机比较快
KeyGen.rek
szHomePage db "Http://bbs.8185.cc",0
szEmail db "mailto:lykonglong@qq.com",0
szErrMess db "不甘心",0
szFMT db "%d",0
szBuffer db 50 dup (0)
.code
MOV ESI,EAX
invoke lstrlen,esi
MOV EDX,EAX
XOR ECX,ECX
XOR EAX,EAX
@Buganxin:
MOVSX EBX,BYTE PTR DS:[EAX+ESI]
AND EAX,0FFh
ADD ECX,EBX
XOR ECX,0BFA05h
INC EAX
CMP EAX,EDX
JL @Buganxin
MOV EAX,0978B60h
MOV EDX,EAX
SHL EAX,4
ADD EAX,EDX
ADD ECX,EAX
ADD ECX,013A3D4h
XOR ECX,059ED8Dh
XOR ECX,0C47324h
invoke wsprintf,addr szBuffer,addr szFMT,ECX
lea eax,szBuffer
-----------------------------------------------------------------------------------------------------------------
帮你帮我论坛刚刚建站欢迎同志们到论坛交谈!
-----------------------------------------------------------------------------------------------------------------
【版权声明】破文是学习的手记,兴趣是成功的源泉;本破文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)