QQ影音里的一个视频转码器 去校验分析.
本帖最后由 女孩不可信 于 2010-5-11 22:58 编辑最新版的QQ影音里多了一个视频转码器,使用了下转换的比一些转码软件好多了,但每次想用就要启动QQ影音,太麻烦了!
找到QQ影音目录,QPToolbox.exe这个就是转码器的主程序了,双击无法打开!看来有校验了。
我先想看看是不是QQ影音启动QPToolbox.exe带了命令行参数,我自己写了个DLL,代码很简单
OutputDebugString(GetCommandLine());
然后注入到了从QQ影音打开的QPToolbox.exe中,打开DebugView,出来一行
"D:\QQPlayer\QPToolbox.exe" 420 578 *
看来被我猜对了 确实是带参数运行的
测试一下 开始-运行 输入D:\QQPlayer\QPToolbox.exe 420 578 *
OK QPToolbox.exe就被打开了....纯属辖猫碰到死老鼠!~~
清楚什么原因了,这里可以写个Hook GetCommandLine 或者 winexec 或者 爆破一下。。。还是爆破省力
我们在OD里看一下吧
载入程序 bp GetCommandLineW
说一下GetCommandLine是取程序启动参数的 因为程序是UNICODE的 所以要加个W,GetCommandLineW。
下好断点以后 F9 运行程序 断下来了
7C817023 >A1 0450887C mov eax,dword ptr ds:
7C817028 C3 retn
F8一下 然后看eax
EAX 00020890 UNICODE ""D:\QQPlayer\QPToolbox.exe""//这个就是启动参数拉!
再次按一下F8,返回到程序领空了
004BA390 /$ 55 push ebp
004BA391 |. 8BEC mov ebp,esp
004BA393 |. 6A FF push -1
004BA395 |. 68 D3484C00 push QPToolbo.004C48D3
004BA39A |. 64:A1 0000000>mov eax,dword ptr fs:
004BA3A0 |. 50 push eax
004BA3A1 |. 83EC 10 sub esp,10
004BA3A4 |. 53 push ebx
004BA3A5 |. 56 push esi
004BA3A6 |. 57 push edi
004BA3A7 |. A1 60605B00 mov eax,dword ptr ds:
004BA3AC |. 33C5 xor eax,ebp
004BA3AE |. 50 push eax
004BA3AF |. 8D45 F4 lea eax,
004BA3B2 |. 64:A3 0000000>mov dword ptr fs:,eax
004BA3B8 |. FF15 60025500 call dword ptr ds:[<&KERNEL32.GetCommand>; [GetCommandLineW
004BA3BE |. 50 push eax ; \\返回启动参数
004BA3BF |. 8D4D F0 lea ecx,
004BA3C2 |. FF15 AC045500 call dword ptr ds:[<&MFC80U.#283>] ; MFC80U.#6735
004BA3C8 |. 51 push ecx
004BA3C9 |. 8D45 F0 lea eax,
004BA3CC |. 8BCC mov ecx,esp
004BA3CE |. 8965 E8 mov ,esp
004BA3D1 |. 50 push eax
004BA3D2 |. C745 FC 00000>mov ,0
004BA3D9 |. FF15 B8045500 call dword ptr ds:[<&MFC80U.#280>] ; MFC80U.#280
004BA3DF |. 68 1CA95800 push QPToolbo.0058A91C
004BA3E4 |. 6A 04 push 4
004BA3E6 |. 68 38A95800 push QPToolbo.0058A938 ; UNICODE "CQQMediaCenterApp::ParseCmdLine"
004BA3EB |. 68 EB000000 push 0EB
004BA3F0 |. 68 78A95800 push QPToolbo.0058A978 ; UNICODE ".\QQMediaCenter.cpp"
004BA3F5 |. BA B8A95800 mov edx,QPToolbo.0058A9B8 ; UNICODE "transcoding.logic"
004BA3FA |. E8 2176F4FF call QPToolbo.00401A20
004BA3FF |. 8B55 F0 mov edx,
004BA402 |. 83C4 18 add esp,18
004BA405 |. 8D4D EC lea ecx,
004BA408 |. 51 push ecx ; /pArgc
004BA409 |. 52 push edx ; |CmdLine
004BA40A |. FF15 E4095500 call dword ptr ds:[<&SHELL32.CommandLine>; \CommandLineToArgvW
004BA410 |. 85C0 test eax,eax ; \\貌似是取命令行参数
004BA412 |. 8945 E8 mov ,eax
004BA415 |. 75 22 jnz short QPToolbo.004BA439
004BA417 |. 8D4D F0 lea ecx,
004BA41A |. FF15 BC045500 call dword ptr ds:[<&MFC80U.#577>] ; MFC80U.#578
004BA420 |. B8 05400080 mov eax,80004005
004BA425 |. 8B4D F4 mov ecx,
004BA428 |. 64:890D 00000>mov dword ptr fs:,ecx
004BA42F |. 59 pop ecx
004BA430 |. 5F pop edi
004BA431 |. 5E pop esi
004BA432 |. 5B pop ebx
004BA433 |. 8BE5 mov esp,ebp
004BA435 |. 5D pop ebp
004BA436 |. C2 0400 retn 4
004BA439 |> BF 01000000 mov edi,1
004BA43E |. 397D EC cmp ,edi
004BA441 |. 7E 3D jle short QPToolbo.004BA480 ; 小于等于则跳
004BA443 |. 8B75 08 mov esi,
004BA446 |. 81C6 A4000000 add esi,0A4
004BA44C |. 8D6424 00 lea esp,dword ptr ss:
004BA450 |> 8B04B8 /mov eax,dword ptr ds: ; //这个循环是设置窗体位置了 看来命令行参数是窗口坐标
004BA453 |. 50 |push eax
004BA454 |. 8D4D 08 |lea ecx,
004BA457 |. FF15 AC045500 |call dword ptr ds:[<&MFC80U.#283>] ; MFC80U.#6735
004BA45D |. 8D5D 08 |lea ebx,
004BA460 |. C645 FC 01 |mov byte ptr ss:,1
004BA464 |. E8 476CF4FF |call QPToolbo.004010B0
004BA469 |. 8BCB |mov ecx,ebx
004BA46B |. C645 FC 00 |mov byte ptr ss:,0
004BA46F |. FF15 BC045500 |call dword ptr ds:[<&MFC80U.#577>] ; MFC80U.#578
004BA475 |. 8B45 E8 |mov eax,
004BA478 |. 83C7 01 |add edi,1
004BA47B |. 3B7D EC |cmp edi,
004BA47E |.^ 7C D0 \jl short QPToolbo.004BA450
004BA480 |> 50 push eax ; /hMemory
004BA481 |. FF15 5C025500 call dword ptr ds:[<&KERNEL32.LocalFree>>; \\\释放内存
004BA487 |. 33C9 xor ecx,ecx
004BA489 |. 837D EC 01 cmp ,1
004BA48D |. 0F9EC1 setle cl
004BA490 |. 8BF1 mov esi,ecx
004BA492 |. 8D4D F0 lea ecx,
004BA495 |. FF15 BC045500 call dword ptr ds:[<&MFC80U.#577>] ; MFC80U.#578
004BA49B |. 8BC6 mov eax,esi
004BA49D |. 8B4D F4 mov ecx,
004BA4A0 |. 64:890D 00000>mov dword ptr fs:,ecx
004BA4A7 |. 59 pop ecx
004BA4A8 |. 5F pop edi
004BA4A9 |. 5E pop esi
004BA4AA |. 5B pop ebx
004BA4AB |. 8BE5 mov esp,ebp
004BA4AD |. 5D pop ebp
004BA4AE C2 0400 retn 4
返回到
004BA6B5|.85C0 test eax,eax//判断eax 为0
004BA6B7 74 34 je short QPToolbo.004BA6ED 为0则跳这里要跳喔改成jmp就算爆破了
其余的就是加载一些皮肤啊 一些DLL 读取一些参数之类的工作了..
分析的简单了点..写的不好不要喷我。。
这个程序入口很郁闷啊 上当了几次 有兴趣的朋友可以玩玩... 学习了。又知道了个函数
页:
[1]