现在的位置: 首页 > 综合 > 正文

快播资源哪里跑(逆向)

2013年10月07日 ⁄ 综合 ⁄ 共 11029字 ⁄ 字号 评论关闭

嗨,大家好,逆向学习有那么几天了,得有点小产品吧,哈哈……,现在把逆向快播的经验贴出来,大家技术交流啊,对了,只是技术交流啊,其它的与我无关…。

快播播放器里面有三个文件,我们需要用到,为什么呢?自己看吧,因为快播是p2p机制的传输协议,所以我们只要快播涉及p2p的软件块就行了。

好了,以下是部分分析,聪明的你们一定会摸索出他们的规律(主要是获取任务的信息),主要代码已经打包了哦。

有图有真相……

成功的应用… 

先贴出OD加载快播时逆向的分析吧

加载时触发

0049ECF9               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 568328  加载时触发  1

0049ECFF               |.  3BCB         cmp     ecx, ebx                           ;  判断 dd_568328 是否为零

0049ED01               |.  74 04        je      short 0049ED07

0049ED03               |.  8B01         mov     eax, dword ptr [ecx]

0049ED05               |.  FF10         call    dword ptr [eax]                    ;  调用 dd_568328      ;无参

直接调用 _InitQvodNet   

0049F444               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 568328 加载时触发  2

0049F44A               |.  85C9         test    ecx, ecx

0049F44C               |.  74 55        je      short 0049F4A3

0049F44E               |. 8B01          mov     eax, dword ptr [ecx]

0049F450               |.  56           push    esi                    ;FFFFFFF

0049F451               |.  FF50 40      call    dword ptr [eax+40]                 ;  一个参数

传递一个参数为 FFFFFFF的值 给函数  call dword ptr [eax+40]

返回值为零

 

0049EDA7               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 568328 加载时触发  3

0049EDAD               |.  8B11         mov     edx, dword ptr [ecx]

0049EDAF               |.  53           push    ebx                    ;ebx=0

0049EDB0               |.  50           push    eax                                ;  F:\Media\

0049EDB1               |.  FF52 0C      call    dword ptr [edx+C]                  ;  调用dd_568328+c函数

0049EDB4               |>  8B35 34A35100 mov     esi, dword ptr[<&KERNEL32.GetLogi>; kernel32.GetLogicalDriveStringsW  两个参数

初始化路径函数    dword ptr [edx+c]("F:\Media\",0)

0049EE26               |.  8B0D 28835600 |mov     ecx, dword ptr [568328]           ; 调用 568326   加载时触发  4

0049EE2C               |.  8B01         |mov     eax, dword ptr [ecx]

0049EE2E               |.  53           |push    ebx                   ebx=0

0049EE2F               |.  56           |push    esi                   ;路径=F:\Media\

0049EE30               |.  FF50 0C      |call    dword ptr [eax+C]                 ;  初始化下载路径吧  两个参数

初始化路径 

0042D6FF               |.  8B0D 28835600 ||mov     ecx, dword ptr [568328]          ; 调用 568326   加载时触发  5

0042D705               |.  8D5424 10    ||lea     edx, dword ptr [esp+10]

0042D709               |.  52           ||push    edx                  ;weizhi

0042D70A               |.  8D5424 34    ||lea     edx, dword ptr [esp+34]

0042D70E               |.  8BF8         ||mov     edi, eax

0042D710               |.  52           ||push    edx                  ;weizhi

0042D711               |.  897424 38    ||mov     dword ptr [esp+38], esi

0042D715               |.  8B01         ||mov     eax, dword ptr [ecx]

0042D717               |.  57           ||push    edi

0042D718               |.  FF50 30      ||call    dword ptr [eax+30]           ;三个参数

循环触发  获得任务个数 以及某数值

 

00430940               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 dd568328    加载时触发  6  兼   添加网络任务触发 顺序3

00430946               |.  8B01         mov     eax, dword ptr [ecx]          

00430948               |.  83C4 0C      add     esp, 0C

0043094B               |.  8D5424 20    lea     edx, dword ptr [esp+20]

0043094F               |.  52           push    edx                    ;未知

00430950               |.  FF7424 18    push    dword ptr [esp+18]         ;未知   但数值显示为256

00430954               |.  56           push    esi                    ;esi=DE4AB6647FA65E303165CACDCEAB741147387B07

00430955               |.  FF50 48      call    dword ptr [eax+48]  ;三个参数

 

连接触发

 

0042FA84               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 568328      连接触发

0042FA8A               |.  8B11         mov     edx, dword ptr [ecx]

0042FA8C               |.  57           push    edi                    ;edi=0

0042FA8D               |.  83C0 04      add     eax, 4

0042FA90               |.  50           push    eax                    ;eax=hash=DE4AB6647FA65E303165CACDCEAB741147387B07

0042FA91               |.  FF52 28      call    dword ptr [edx+28]         ;两个参数

 

 

断开触发

0042FA9C               |.  8B0D 28835600 mov     ecx, dword ptr [568328]        ;断开触发

0042FAA2               |.  8B11         mov     edx, dword ptr [ecx]

0042FAA4               |.  57           push    edi                    ;edi=0

0042FAA5               |.  83C0 04      add     eax, 4

0042FAA8               |.  50           push    eax                    ;hash=DE4AB6647FA65E303165CACDCEAB741147387B07

0042FAA9               |.  FF52 24      call    dword ptr [edx+24]         ;两个参数

 

 

修改路径触发

00491226               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 568328      修改路径触发

0049122C               |.  85C9         test    ecx, ecx

0049122E               |.  74 08        je      short 00491238

00491230               |.  8B1B         mov     ebx, dword ptr [ebx]      

00491232               |.  8B01         mov     eax, dword ptr [ecx]

00491234               |.  53           push    ebx                    ;//路径

00491235               |.  FF50 18      call    dword ptr [eax+18]     ;一个参数

 

全部连接触发

004AA8CE               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 全部连接触发调用 568328

004AA8D4               |.  83C4 0C      add     esp, 0C

004AA8D7               |.  3BCB         cmp     ecx, ebx

004AA8D9               |.^ 0F84 3CE4FFFF je      004A8D1B

004AA8DF               |. 8B01          mov     eax, dword ptr [ecx]               ; 

004AA8E1               |.  6A 01        push    1                                  ;  估计个数

004AA8E3               |.  8D9424 380A00>lea     edx, dword ptr [esp+A38]

004AA8EA               |. 52            push    edx                                ;  0

004AA8EB               |.  FF50 28      call    dword ptr [eax+28]         两个参数

//全部断开触发

004AA924               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 568328      //全部断开触发

004AA92A               |.  83C4 0C      add     esp, 0C

004AA92D               |.  3BCB         cmp     ecx, ebx

004AA92F               |.^ 0F84 E6E3FFFF je      004A8D1B

004AA935               |.  33C0         xor     eax, eax

004AA937               |. 833D E48D5600>cmp     dword ptr[568DE4], 1

004AA93E               |.  6A 01        push    1

004AA940               |.  0F9FC0       setg    al

004AA943               |.  8D9424 380A00>lea     edx, dword ptr [esp+A38]

004AA94A               |.  52           push    edx                    =0

004AA94B               |.  A3 4C875600  mov     dword ptr [56874C], eax

004AA950               |.  8B01         mov     eax, dword ptr [ecx]

004AA952               |.  FF50 24      call    dword ptr [eax+24]                 ;  全部断开 两个参数

删除任务触发

0042FE34               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 568328  删除任务触发

0042FE3A               |.  FF75 A4      push    dword ptr [ebp-5C]         ;ebp-5c=hash=DE4AB6647FA65E303165CACDCEAB741147387B07

0042FE3D               |.  8B01         mov     eax, dword ptr [ecx]

0042FE3F               |.  FF50 20      call    dword ptr [eax+20]         ;一个参数

 播放触发

0042F3DC               |> /8B0D 28835600 /mov     ecx, dword ptr [568328]           ; 调用 568328  播放触发

0042F3E2               |. |8B7424 2C     |mov    esi, dword ptr [esp+2C]

0042F3E6               |. |8B01          |mov     eax, dword ptr [ecx]

0042F3E8               |. |8D5424 18     |lea    edx, dword ptr [esp+18]       ;edx=77CF7094(ntdll.KiFastSystemCallRet)

0042F3EC               |. |52            |push    edx

0042F3ED               |. |FF7424 14     |push   dword ptr [esp+14]

0042F3F1               |. |56            |push    esi                   ;esi=DE4AB6647FA65E303165CACDCEAB741147387B07

0042F3F2               |. |FF50 3C       |call   dword ptr [eax+3C]            ;三个参数

循环触发    每0.2秒触发哟

0042D6A9               |.  8B0D 28835600 |mov     ecx, dword ptr [568328]           ; 调用 dd_568328 循环触发  每0.2秒触发哟

0042D6AF               |.  69C0 54040000 |imul    eax, eax, 454

0042D6B5               |.  8D5424 10    |lea     edx, dword ptr [esp+10]           ;任务个数

0042D6B9               |.  52           |push    edx

0042D6BA               |.  8D5424 34    |lea     edx, dword ptr [esp+34]           ;edx=330f

0042D6BE               |.  52           |push    edx                           ;

0042D6BF               |.  FF7424 1C    |push    dword ptr [esp+1C]                    ;hash zhi ? (ASCII"03C61BC8CE96CB5072C9E149DE7771C9D6A03E24")

0042D6C3               |.  894424 3C    |mov     dword ptr [esp+3C], eax

0042D6C7               |.  8B01         |mov     eax, dword ptr [ecx]

0042D6C9               |.  FF50 30      |call    dword ptr [eax+30]            ;三个参数   非常可疑

 

添加网络任务触发

0042F0D1               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 dd568328       添加网络任务触发 顺序1

0042F0D7               |.  8B01         mov     eax, dword ptr [ecx]

0042F0D9               |.  53           push    ebx                    ;ebx=0

0042F0DA               |.  8D55 C4      lea     edx, dword ptr [ebp-3C]

0042F0DD               |.  52           push    edx                    ;edx=0   有十个四字节数为零

0042F0DE               |.  57           push    edi                    ;edi=qvod://189694296|DE4AB6647FA65E303165CACDCEAB741147387B07|你是我爱人_22.rmvb|

0042F0DF               |.  FF50 04      call    dword ptr [eax+4]          ;三个参数

 

0042F163               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 dd568328       添加网络任务触发 顺序2

0042F169               |.  8B11         mov     edx, dword ptr [ecx]

0042F16B               |.  50           push    eax                    ;估计 某内存块地址  因为为初始化

0042F16C               |.  8945 C0      mov     dword ptr [ebp-40], eax       

0042F16F               |.  8D45 C4      lea     eax, dword ptr [ebp-3C]

0042F172               |.  50           push    eax                    ;eax=DE4AB6647FA65E303165CACDCEAB741147387B07

0042F173               |.  FF52 44      call    dword ptr [edx+44]         ;两个参数

 

00430940               |.  8B0D 28835600 mov     ecx, dword ptr [568328]            ; 调用 dd568328       添加网络任务触发 顺序3

00430946               |.  8B01         mov     eax, dword ptr [ecx]          

00430948               |.  83C4 0C      add     esp, 0C

0043094B               |.  8D5424 20    lea     edx, dword ptr [esp+20]

0043094F               |.  52           push    edx                    ;未知

00430950               |.  FF7424 18    push    dword ptr [esp+18]         ;未知   但数值显示为256

00430954               |.  56           push    esi                    ;esi=DE4AB6647FA65E303165CACDCEAB741147387B07

00430955               |.  FF50 48      call    dword ptr [eax+48]  ;三个参数

看着上面的代码,是不是显得很无助啊?没事,接着看,我来讲解下原因。

快播启动时,加载了QvodNet.dll文件,该文件有什么用呢?答案是控制p2p资源下载以及限速的操作,上面逆向代码都是对这的分析,也就是说,只要围绕这它,你就掌握了逆向快播了,随时随地下载快播资源,包括最新的电影,具体操作请下载下载包,看代码吧。

代码部分讲解---

启动时    

     //#ifdef _DEBUG  cmd窗体 以后输出的信息都在这显示

     AllocConsole();

     freopen("CONOUT$","w+t",stdout);

//#endif


     //为什么添加这段?防止快播自动下载更新。有些模块地址不一样,所以要禁止更新。

     {

         TCHARpath[MAX_PATH] = {0};

         ::GetModuleFileName(NULL,path,MAX_PATH);

         CStringstrUpdate(path);

         strUpdate.Replace(_T("TestQvod.exe"),_T("update.jpg"));

         ::CreateFile(strUpdate,GENERIC_READ,FILE_SHARE_READ,NULL,        OPEN_ALWAYS,FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_HIDDEN,NULL);

     }

 

程序中有全局变量

     BYTE*m_byteBuffer=NULL;  //从内存中读出的消息全部放到这变量中(消息含有任务MD5值、路径、影片名、文件大小、已下载大小、是否下载……等等)

     HMODULEm_hMouleQvodNet;  //句柄

     DWORDm_dFunctionHandle,m_dHandle; //消息句柄

DWORDd_517864;  //一个地址

 

 

//逆向快播的初始化

     void CTestQvodDlg::OnInitQvodNet()

 

//获得任务信息,获取任务个数,传参任务的MD5,返回值为零成功,其它不成功,成功时读取的信息有(消息含有任务MD5值、路径、影片名、文件大小、已下载大小、是否下载……等等),每个任务都有,只是要懂的这个任务类的结构大小,就好定位了,源码已经写好了。

int CTestQvodDlg::GetTaskInfo(int *pLength,int *task)

//点击连接  里面有测试MD5值

在项目中有文件videolist.db 里面有很多测试的任务,你们可以了解下。其它的就说了,详细看代码哟。

下载地址:http://download.csdn.net/detail/banketree/4416468

抱歉!评论已关闭.