每年都到这个月找代理商的人,每次代理商都是人毛都没,去年还好,电话还有,QQ不上长线,偶尔也上线,今年电话没有了,QQ没看他上线了,打了不下10个电话,终于转到新网互联会员系统了,每年130,原来只有75块的,明年再转到国外去,国外便宜多了……
2012年的春晚不知大家看了没有,我喝多了酒,睡到凌晨才起来,没有来得及看,但从评论上面来看反响不佳,反正这么多年来春晚我都没有看了,基本上都是洗洗睡了,然来再起来上网一夜,大家是怎么过的?
前些天因装了路由器,所以想到了破解星空极速的密码,一分析,发现密码并不复杂,只不过把数字转了 16进制,然后再计算,网上下载的一般都带病毒木马,所以就有了这个小东西的诞生.适合电脑装机人员,自行装路由器的家庭用户。湖南区域可用,外省因无账户,暂无测试,请下载的朋友反馈一下。
注:必须在破解密码之前在路由器的界面里面把能够通过星空极速上网的电脑的MAC地址复制到路由器里面,不然是不成功的,因为电信记住了原先上网拨号的MAC地址,而路由器另外又带一个MAC地址,所以先要复制一下才可用。
下载前请注意,暂时只对数字密码进行了解密,字母+符号没有解密,如有需要,请先打10000号改数字密码后再用本软件破解
下载文件 (已下载 211 次)要拦截的API如下:
MessageBoxA、MessageBoxW、MessageBeep 和 OpenProcess 。
首先,大家都知道要在整个系统范围中拦截,需要使用Dll来完成。现在我们打开Delphi 2009,新建一个Dll工程:hookDll。需要说明的是,Delphi是完全面向对象的编程语言,所以我们不要浪费,这个Dll打算用类的方式完成。于是,在新建的DLL工程中在添加一个Unit Pas,命名为unitHook, 用来写拦截类的处理。unitHook.pas中的代码如下:
unit unitHook;interfaceuses Windows, Messages, Classes, SysUtils;type //NtHook类相关类型 TNtJmpCode=packed record //8字节 MovEax:Byte; Addr:DWORD; JmpCode:Word; dwReserved:Byte; end; TNtHookClass=class(TObject) private hProcess:THandle; NewAddr:TNtJmpCode; OldAddr:array[0..7] of Byte; ReadOK:Boolean; public BaseAddr:Pointer; constructor Create(DllName,FuncName:string;NewFunc:Pointer); destructor Destroy; override; procedure Hook; procedure UnHook; end;implementation//==================================================//NtHOOK 类开始//==================================================constructor TNtHookClass.Create(DllName: string; FuncName: string;NewFunc:Pointer);var DllModule:HMODULE; dwReserved:DWORD;begin //获取模块句柄 DllModule:=GetModuleHandle(PChar(DllName)); //如果得不到说明未被加载 if DllModule=0 then DllModule:=LoadLibrary(PChar(DllName)); //得到模块入口地址(基址) BaseAddr:=Pointer(GetProcAddress(DllModule,PChar(FuncName))); //获取当前进程句柄 hProcess:=GetCurrentProcess; //指向新地址的指针 NewAddr.MovEax:=$B8; NewAddr.Addr:=DWORD(NewFunc); NewAddr.JmpCode:=$E0FF; //保存原始地址 ReadOK:=ReadProcessMemory(hProcess,BaseAddr,@OldAddr,8,dwReserved); //开始拦截 Hook;end;//释放对象destructor TNtHookClass.Destroy;begin UnHook; CloseHandle(hProcess); inherited;end;//开始拦截procedure TNtHookClass.Hook;var dwReserved:DWORD;begin if (ReadOK=False) then Exit; //写入新的地址 WriteProcessMemory(hProcess,BaseAddr,@NewAddr,8,dwReserved);end;//恢复拦截procedure TNtHookClass.UnHook;var dwReserved:DWORD;begin if (ReadOK=False) then Exit; //恢复地址 WriteProcessMemory(hProcess,BaseAddr,@OldAddr,8,dwReserved);end;end.
至此,unitHook.pas的代码OK了,其中加了详细的注释,在此就不再多做解释。现在切换到Dll的代码页,写入以下代码:
library hookdll;uses SysUtils, Windows, Classes, unitHook in 'unitHook.pas';{$R *.res}const HOOK_MEM_FILENAME = 'tmp.hkt';var hhk: HHOOK; Hook: array[0..3] of TNtHookClass; //内存映射 MemFile: THandle; startPid: PDWORD; //保存PID{--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--}//拦截 MessageBoxAfunction NewMessageBoxA(_hWnd: HWND; lpText, lpCaption: PAnsiChar; uType: UINT): Integer; stdcall;type TNewMessageBoxA = function (_hWnd: HWND; lpText, lpCaption: PAnsiChar; uType: UINT): Integer; stdcall;begin lpText := PAnsiChar('已经被拦截 MessageBoxA'); Hook[0].UnHook; Result := TNewMessageBoxA(Hook[0].BaseAddr)(_hWnd, lpText, lpCaption, uType); Hook[0].Hook;end;//拦截 MessageBoxWfunction NewMessageBoxW(_hWnd: HWND; lpText, lpCaption: PWideChar; uType: UINT): Integer; stdcall;type TNewMessageBoxW = function (_hWnd: HWND; lpText, lpCaption: PWideChar; uType: UINT): Integer; stdcall;begin lpText := '已经被拦截 MessageBoxW'; Hook[2].UnHook; Result := TNewMessageBoxW(Hook[2].BaseAddr)(_hWnd, lpText, lpCaption, uType); Hook[2].Hook;end;//拦截 MessageBeepfunction NewMessageBeep(uType: UINT): BOOL; stdcall;type TNewMessageBeep = function (uType: UINT): BOOL; stdcall;begin Result := True;end;//拦截 OpenProcess , 防止关闭function NewOpenProcess(dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwProcessId: DWORD): THandle; stdcall;type TNewOpenProcess = function (dwDesiredAccess: DWORD; bInheritHandle: BOOL; dwProcessId: DWORD): THandle; stdcall;begin if startPid^ = dwProcessId then begin result := 0; Exit; end; Hook[3].UnHook; Result := TNewOpenProcess(Hook[3].BaseAddr)(dwDesiredAccess, bInheritHandle, dwProcessId); Hook[3].Hook;end;{--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--}//安装API Hookprocedure InitHook;begin Hook[0] := TNtHookClass.Create('user32.dll', 'MessageBoxA', @NewMessageBoxA); Hook[1] := TNtHookClass.Create('user32.dll', 'MessageBeep', @NewMessageBeep); Hook[2] := TNtHookClass.Create('user32.dll', 'MessageBoxW', @NewMessageBoxW); Hook[3] := TNtHookClass.Create('kernel32.dll', 'OpenProcess', @NewOpenProcess);end;//删除API Hookprocedure UninitHook;var I: Integer;begin for I := 0 to High(Hook) do begin FreeAndNil(Hook[I]); end;end;{--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--}//内存映射共想procedure MemShared();begin MemFile:=OpenFileMapping(FILE_MAP_ALL_ACCESS,False, HOOK_MEM_FILENAME); //打开内存映射文件 if MemFile = 0 then begin //打开失败则衉c2建内存映射文件 MemFile := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, 4, HOOK_MEM_FILENAME); end; if MemFile <> 0 then //映射文件到变量 startPid := MapViewOfFile(MemFile,FILE_MAP_ALL_ACCESS,0,0,0);end;//传递消息function HookProc(nCode, wParam, lParam: Integer): Integer; stdcall;begin Result := CallNextHookEx(hhk, nCode, wParam, lParam);end;//开始HOOKprocedure StartHook(pid: DWORD); stdcall;begin startPid^ := pid; hhk := SetWindowsHookEx(WH_CALLWNDPROC, HookProc, hInstance, 0);end;//结束HOOKprocedure EndHook; stdcall;begin if hhk <> 0 then UnhookWindowsHookEx(hhk);end;//环境处理procedure DllEntry(dwResaon: DWORD);begin case dwResaon of DLL_PROCESS_ATTACH: InitHook; //DLL载入 DLL_PROCESS_DETACH: UninitHook; //DLL删除 end;end;exports StartHook, EndHook;begin MemShared; { 分配DLL程序到 DllProc 变量 } DllProc := @DllEntry; { 调用DLL加载处理 } DllEntry(DLL_PROCESS_ATTACH);end.
这样,我们用来hook API 的 Dll 就完工了。 在Dll中,我们还使用到了内存映射,用来实现在拦截全局时的内存共享,如这个例子中需要保存调用此hook的进程句柄,以防止通过任务管理器关闭示例程序。
编译生成 hookdll.dll 文件,就可以使用了。现在我们再来建立一个测试用的程序。
如附图所示,画3个按钮,分别为"Hook"、"UnHook"、"MessageBox",前两个用来安装和删除钩子,第三个用来显示一个消息框,你将会看到被Hook后的情况。测试工程的代码如下:
unit FMain;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TfrmMain = class(TForm) btnHook: TButton; btnUnhook: TButton; Button1: TButton; procedure btnHookClick(Sender: TObject); procedure btnUnhookClick(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var frmMain: TfrmMain; procedure StartHook(pid: DWORD); stdcall; external 'hookdll.dll'; procedure EndHook; stdcall; external 'hookdll.dll';implementation{$R *.dfm}procedure TfrmMain.btnHookClick(Sender: TObject);begin StartHook(GetCurrentProcessId);end;procedure TfrmMain.btnUnhookClick(Sender: TObject);begin EndHook;end;procedure TfrmMain.Button1Click(Sender: TObject);begin MessageBox(0, 'abdfadfasdf', nil, 0);end;procedure TfrmMain.FormCreate(Sender: TObject);beginend;end.完成后运行,先不点击"hook"按钮,直接点击MessageBox,你会发现现在已经被拦截了。为什么我们还没有安装钩子就被拦截了呢?程序出错了吗?呵呵。当然没有出错。反过来看看DLL中的一处代码:.............//环境处理procedure DllEntry(dwResaon: DWORD);begin case dwResaon of DLL_PROCESS_ATTACH: InitHook; //DLL载入 DLL_PROCESS_DETACH: UninitHook; //DLL删除 end;end;............begin MemShared; { 分配DLL程序到 DllProc 变量 } DllProc := @DllEntry; { 调用DLL加载处理 } DllEntry(DLL_PROCESS_ATTACH);end.可以看到,在DLL装入内存的时候其实就已经调用了InitHook,将要拦截的API拦截了。这时候看看任务管理器能不能关闭我们的程序,试一下就知道还可以,因为我们还没有调用StartHook来传入我们程序的PID,所以还可以被关闭。
到此这篇文章就结束了, 本人从小语文没及过格(^_^),文章写的不太好,不过源代码都贴上了,有详细的注释,相信大家也能看明白。如果你发现有什么错误的地方,要记得告诉我哦!
最后感谢 cxwr(菜新)大大的支持,能完成这篇文章少不了他的功劳。
功能介绍
傻瓜式操作 一键轻松备份还原
程序为向导式安装,一键即可实现自动备份或还原系统。操作过程全程自动完成,即使是电脑新手,都能快速掌握使用。当您的系统操作变慢、中木马病毒、或是灾难性崩溃等任何情况,极点一键还原都可以使您的系统轻松快速的还原到健康状态。安全高效 稳定可靠 全面兼容WINDOWS系统本程序基于Ghost(v11.02)内核,具有良好的安全和稳定性,真正达到快速备份还原;全面支持和兼容32位和64位的Windows等主流操作系统平台,支持最新的Windows7操作系统,Vista、XP、2000、2003等更不在话下;备份文件在隐藏目录,大大降低被误删除或被破坏的可能性,使您无后顾之忧,且支持.ISO文件的还原。
软件纯绿色 不读写注册表 不流氓
本程序不写注册表,不会产生任何垃圾,不会修改主页,不会无法卸载,经过37款杀软件的检测让您用得放心。
软件流程
还原操作:运行软件后软件首先会检测当前目录下的所有GHO文件,如果有的话会存入还原路径,如有没有GHO文件,会查找所有硬盘下JDGHOST~...文件夹下的 JDGHOST.JD文件(本程序产生的备份文件,改名为.JD是防患病毒破坏)。
备份操作:枚举大于3G的硬盘空间,如果存在,产生一个JDGHOST~...的隐藏目录以便备份系统。
特殊:把文件重命名如:test(XX专版),程序运行后会在标题栏显示括号内文字,如极点一键还原 - XX专版,或带参数运行,建立一个批处理(.bat),
编辑:(start 本程序文件名 参数) 标题栏也会显示该参数。

下载地址 请使用迅雷下载
115网盘下载:http://u.115.com/file/f28c0e41e0






