首页
社区
课程
招聘
***vod2006点歌系统 去自效验+模拟域天狗[原创]
发表于: 2006-5-16 09:42 7554

***vod2006点歌系统 去自效验+模拟域天狗[原创]

2006-5-16 09:42
7554
***vod2006点歌系统 去自效验+模拟域天狗

***vod2006点歌系统
1. 播控系统
      响应顾客点播请求,新录入歌曲管理方便快捷
    2. 包房点播系统
      提供各类曲目检索查询方式,播放顾客点播内容;独有多模式组合查询功能让你用最快的方式 找到你所要的歌。
    3. 多格式播放支持
      系统支持的视频文件格式几乎涵盖目前所有视频格式,这样的设计使我们的用户在歌源或者片源上的选择更加的多元化,成本更低,其具体支持格式为:DIV、MPG、DAT、VOB、AVI
    4. 界面简洁美观,操作方便
      界面操作设计方面都坚持人性化,科学化的指导思想,在智远MPEG4新版本中的各个点歌界面都全面支持字数、拼音点歌,界面简洁明了,数字菜单直接进入各种点歌方式,操作更易上手。
    5.CD直接播放,方便快捷
      考虑到个人及家庭用户的需要,我们提供了强大的CDROM直接播放功能,即插即播,全面支持VCD、SVCD、CD、DVD以及电脑视频碟(AVI、MP3等)

破解工具:peid0.94,AspackDie141,C32ASM,ollydbg

开工:
用peid扫描主程序为Aspack2.12加壳,用AspackDie141脱之保存为ok.exe。
程序有凋用Syunew2D.dll动态联接库。好家伙,一眼就看出是使用的域天加密狗。
插好加密狗,运行脱壳后的程序。程序运行了,但提示“REALMagic Driver is not Installed!”。
(有没搞错!我明明插好的神龙解压卡。)于是我运行未脱壳的程序,一切正常!
分析之,可能程序有自效验。

1。解除自效验:
用C32ASM反汇编ok.exe,查找字符串“REALMagic Driver is not Installed!”;
::0051FECB::  CALL 00503D78
::0051FED0::  TEST AX,AX                              
::0051FED3::  JE SHORT 0051FEDE
::0051FED5::  CALL 004C07AC     
::0051FEDA::  TEST AL,AL                              
::0051FEDC::  JNZ SHORT 0051FEE2
::0051FEDE::  XOR EAX,EAX
::0051FEE0::  JMP SHORT 0051FEE4
::0051FEE2::  MOV AL,1
::0051FEE4::  MOV EDX,[527D68]
::0051FEEA::  MOV [EDX],AL                           
::0051FEEC::  PUSH 52018C     \->: 智远启动屏
::0051FEF1::  PUSH 0                                 
::0051FEF3::  CALL 004075F0   \:JMPUP    >>>: USER32.DLL:FindWindowA
::0051FEF8::  MOV EBX,EAX                             
::0051FEFA::  MOV EAX,[527D68]                        
::0051FEFF::  CMP BYTE PTR [EAX],0                    
::0051FF02::  JNZ SHORT 0051FF15
::0051FF04::  PUSH 10                                 
::0051FF06::  PUSH 0                                 
::0051FF08::  PUSH 520198  \->: REALMagic Driver is not Installed! “就是这里了”
::0051FF0D::  PUSH EBX                                
::0051FF0E::  CALL 00407878  \:JMPUP    >>>: USER32.DLL:MessageBoxA
::0051FF13::  JMP SHORT 0051FF82
::0051FF15::  MOV EAX,[EBP-4]

由::0051FEFF::  CMP BYTE PTR [EAX],0  这句得知由eax的值来判断是否
弹出“REALMagic Driver is not Installed! ”的提示。
向上查找得出 eax的值可能由
0051FECB::  CALL 00503D78 或者
0051FED5::  CALL 004C07AC
来决定的,到底是那个CALL ?

该由ollydbg出手了,运行ollydbg,加载ok.exe
在0051FECB处设断,f9程序中断在0051FECB。f8单步来到0051FEDC,
发现此处不跳使得eax值为0,改之JNZ SHORT 0051FEE2 为jmp SHORT 0051FEE2;
自效验解除!

2.模拟加密狗:
在不插狗的情况下运行ok.exe放歌半小时就停止播放。
用C32ASM反汇编ok.exe,查看输入表:
SYUNEW2D.DLL
FindPort
                ::004C04F0->JMP [52A950]
                ::004C0746->CALL 004C04F0
                ::004C079F->CALL 004C04F0
YRead
                ::004C0508->JMP [52A944]
                ::004C0614->CALL 004C0508
                ::004C0635->CALL 004C0508
sRead
                ::004C0500->JMP [52A948]
                ::004C06C0->CALL 004C0500
sWrite_2
                ::004C04F8->JMP [52A94C]
                ::004C06B0->CALL 004C04F8

FindPort函数为找狗,YRead函数为读狗数据,sRead函数为读狗加密数据
sWrite_2函数为写狗加密数据。

FindPort函数返回值为0既表示找到加密狗!
::004C073F::  PUSH 528D70                             
::004C0744::  PUSH 0                                 
::004C0746::  CALL 004C04F0    \:JMPUP    >>>: SYUNEW2D.DLL:FindPort
::004C074B::  TEST EAX,EAX                           
::004C074D::  SETE BL                                 
::004C0750::  TEST BL,BL                              
::004C0752::  JE SHORT 004C0769  
::004C0754::  LEA EAX,[EBP-4]                        
::004C0757::  CALL 004C05E4           : 跟进               
::004C075C::  MOV EAX,[EBP-4]                        
::004C075F::  CALL 004C0678           : 跟进                 
::004C0764::  MOV [528E75],AL         :此处al必须等于3;               
::004C0769::  CMP BYTE PTR [528E75],3   \:BYJMP JmpBy:004C0752

现在重点是跟踪分析出YRead,sRead的返回值,和sWrite_2的写入值。
004C05E4::    PUSH EBP
................................
::004C0614::  CALL 004C0508                           \:JMPUP    >>>: SYUNEW2D.DLL:YRead
::004C0619::  TEST EAX,EAX                        eax=0a   
::004C061B::  JNZ SHORT 004C0653                      \:JMPDOWN
::004C061D::  XOR EBX,EBX                             
::004C061F::  MOV BL,[EBP-1]                          
::004C0622::  TEST EBX,EBX                           
::004C0624::  JLE SHORT 004C0653                      \:JMPDOWN
::004C0626::  MOV EDI,1                              
::004C062B::  PUSH 528D70                             \:BYJMP JmpBy:004C0651,
::004C0630::  PUSH EDI                                
::004C0631::  LEA EAX,[EBP-1]                        
::004C0634::  PUSH EAX                                
::004C0635::  CALL 004C0508                           \:JMPUP    >>>: SYUNEW2D.DLL:YRead
::004C063A::  LEA EAX,[EBP-8]                        
::004C063D::  MOV DL,[EBP-1]                          
::004C0640::  CALL 00404904                           \:JMPUP
::004C0645::  MOV EDX,[EBP-8]                        
::004C0648::  MOV EAX,ESI                             
::004C064A::  CALL 004049E4                           \:JMPUP
::004C064F::  INC EDI                                 
::004C0650::  DEC EBX                                 
::004C0651::  JNZ SHORT 004C062B          从狗地址1到10,循环读取数据;

::004C0678::  PUSH EBP
..................................
::004C06AA::  PUSH EDI          \:BYJMP JmpBy:004C06F0,
::004C06AB::  XOR EAX,EAX                             
::004C06AD::  MOV AL,BL          al=0,1,2,3,.....3d                     
::004C06AF::  PUSH EAX                                
::004C06B0::  CALL 004C04F8     \:JMPUP    >>>: SYUNEW2D.DLL:sWrite_2
::004C06B5::  MOV ESI,EAX                             
::004C06B7::  TEST ESI,ESI                           
::004C06B9::  JNZ SHORT 004C06EC   \:JMPDOWN
::004C06BB::  PUSH EDI                                
::004C06BC::  LEA EAX,[EBP-C]                        
::004C06BF::  PUSH EAX                                
::004C06C0::  CALL 004C0500     \:JMPUP    >>>: SYUNEW2D.DLL:sRead
::004C06C5::  MOV ESI,EAX                             
::004C06C7::  TEST ESI,ESI                           
::004C06C9::  JNZ SHORT 004C06EC   \:JMPDOWN
::004C06CB::  MOV EAX,[EBP-C]                        
::004C06CE::  XOR EDX,EDX                             
::004C06D0::  PUSH EDX                                
::004C06D1::  PUSH EAX                                
::004C06D2::  LEA EAX,[EBP-10]                        
::004C06D5::  CALL 00409298      \:JMPUP
::004C06DA::  MOV EDX,[EBP-10]              YRead 读取的数据;
::004C06DD::  MOV EAX,[EBP-4]               sRead 读取的数据;                  
::004C06E0::  CALL 00404B20     \:JMPUP     比较两数据是否相等;
(此段程序循环3次后两数据相等值为:3790723959)      
::004C06E5::  JNZ SHORT 004C06EC    \:JMPDOWN
::004C06E7::  MOV [EBP-5],BL                bl=循环的次数;           
::004C06EA::  JMP SHORT 004C06F2     \:JMPDOWN
::004C06EC::  INC EBX     \:BYJMP JmpBy:004C06B9,004C06C9,004C06E5,
::004C06ED::  CMP BL,3D                              
::004C06F0::  JNZ SHORT 004C06AA     \:JMPUP    循环;

好,现在清楚了读狗写狗数据,我就写个Syunew2D.dll来模拟它!

我写的Syunew2D.dll的DELPHI原代码:

library Syunew2D;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,IniFiles,Classes,Dialogs,StdCtrls,windows;

var
ok:DWord;

{$R *.res}

function FindPort(Start: integer; OutPath: PChar): integer; stdcall;
begin

result:=0;
OutPath:='johnroot';

end;

function sWrite_2(In_Data: DWord; InPath: PChar): integer; stdcall;
begin
ok:=In_Data;
result:=0;
end;

function sRead(var Out_Data: DWord; InPath: PChar): integer; stdcall;
begin
case ok of
  1: Out_Data:=3789934357;
  2: Out_Data:=3787582407;
  3: Out_Data:=3790723959;
end;
result:=0;
end;

function YRead(var Out_EPROM: byte; Address: smallint; InPath: PChar): integer; stdcall;
begin
case Address of
0:  Out_EPROM:=$0a;
1:  Out_EPROM:=$33;
2:  Out_EPROM:=$37;
3:  Out_EPROM:=$39;
4:  Out_EPROM:=$30;
5:  Out_EPROM:=$37;
6:  Out_EPROM:=$32;
7:  Out_EPROM:=$33;
8:  Out_EPROM:=$39;
9:  Out_EPROM:=$35;
10: Out_EPROM:=$39;
end;
result:=0

end;

exports
   FindPort,
   sWrite_2,
   sRead,
   YRead;
begin
end.

                                         johnroot
                                         2006.5.16

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 332
活跃值: (479)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
2
学习收藏
2006-5-16 10:52
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不错!
不过我是决对不去看域天狗的,有时候真是怀疑除了它的作者,还有多少人能看懂它的开发包
2006-5-16 11:09
0
雪    币: 217
活跃值: (91)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
何处有当?
2006-5-16 11:20
0
雪    币: 175
活跃值: (2531)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
太好了,下载收藏。
2006-5-16 21:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
对这些我不是很懂啊, 想找一个能破解传奇外挂的朋友。 帮忙,求助。。

我的联系方式QQ:9440888     

有谢。。
尽快联系。。
2006-5-16 21:23
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
好文章
程序能否 共享提供一份
3Q!
2006-5-16 21:39
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
域天的狗,看着就晕,用起来不舒服。不过强度好像。。。
2006-5-16 22:29
0
游客
登录 | 注册 方可回帖
返回
//