男人吃奶摸下挵进去好爽,日日躁夜夜躁狠狠躁,freesexvide0s性欧美高清,高清freexxxx性国产,无码人妻一区二区三区一,乱人伦中文字幕成人网站在线,亚洲欧美综合一区二区三区 ,神马影院在线视频观看
知識學堂
  • ·聯系電話:+86.023-75585550
  • ·聯系傳真:+86.023-75585550
  • ·24小時手機:13896886023
  • ·QQ 咨 詢:361652718 513960520
當前位置 > 首頁 > 知識學堂 > 常見技術問題
利用微軟Detours開發包截獲星空極速賬號和密碼
更新時間:2012-06-10 | 發布人:本站 | 點擊率:802
有些地區的中國電信(如湖北)對用星空極速撥號的賬號或者密碼進行了加密處理,一旦用戶使用過一次星空極速進行撥號,那么他的賬號或者密碼將被加密,這樣就導致路由器直接用原來的初始撥號賬號和密碼無法撥號,本文將利用微軟的detours開發包工具截獲加密后的賬號和密碼,用此賬號密碼路由器即可成功撥號。

        網絡上已經有一些星空極速賬號密碼算法研究的文章,但是都不是很徹底,也不是一勞永逸的方法,因為一旦算法改變那么方法也就失效,需要重新分析算法。本文介紹的方法則可以一勞永逸的解決上面的問題
本人經過分析星空極速撥號軟件,它在底層調用了windows PPPoE撥號API(rasapi32.dll),關鍵的函數就是如下圖中的RasDialA 函數,此函數需要傳遞一個結構體,而此結構體中就存在我們需要的敏感數據:ADSL賬號和密碼


RasDialA函數參數中的一個結構體如下RASDIALPARAMSA,其中szUserName和szPassword為ADSL賬號和密碼,也是我們需要截獲的數據,一旦我們有方法截獲這兩個參數的值那么不管中國電信以后的算法如何升級,只要他不全部重寫PPPoE協議棧,都可以通過此方法截獲,達到一勞永逸
RASDIALPARAMSA
{
     DWORD dwSize;
     CHAR   szEntryName[ RAS_MaxEntryName + 1 ];
     CHAR   szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
     CHAR   szCallbackNumber[ RAS_MaxCallbackNumber + 1 ];
     CHAR   szUserName[ UNLEN + 1 ];
     CHAR   szPassword[ PWLEN + 1 ];
     CHAR   szDomain[ DNLEN + 1 ];
#if (WINVER >= 0x401)
     DWORD dwSubEntry;
     DWORD dwCallbackId;
#endif
};
___________________________________________________________________________________________________________
下面介紹一下使用detours進行RasDialA函數截獲的方法。新建一個MFC dll工程,可以選擇靜態鏈接MFC庫,在theApp所在文件頭部加入包含文件
#include "detours.h" //微軟detours頭文件
#include   "ras.h"   //windows PPPoE 函數頭文件
#pragma comment(lib,"detours.lib") //微軟detours靜態lib
#pragma comment(lib,"rasapi32.lib") // windows PPPoE 函數lib
___________________________________________________________________________________________________________

增加如下幾個函數體
//截獲RasDialA函數體,用戶自己實現,在調用系統RasDialA函數之前系統會先調用此函數,而參數入口信息完全一致,這樣我們就可以從中提取相應的參數信息,提取完成后再繼續調用系統原來的RasDialA函數,達到Hook API的目的
DWORD WINAPI MyRasDialA(
LPRASDIALEXTENSIONS lpRasDialExtensions, // pointer to function extensions data
LPCTSTR lpszPhonebook,    // pointer to full path and file name of phone-book file
LPRASDIALPARAMS lpRasDialParams, // pointer to calling parameters data
DWORD dwNotifierType,    // specifies type of RasDial event handler
LPVOID lpvNotifier,      // specifies a handler for RasDial events
LPHRASCONN lphRasConn    // pointer to variable to receive connection handle
);
___________________________________________________________________________________________________________
④//經過替換修飾后的RasDialA函數,用戶可以在MyRasDialA函數中繼續調用系統原來的RasDialA函數功能,在MyRasDialA函數中如果要調用系統原來的RasDialA函數必須調用經過修飾后的oldRasDialA函數,否則將造成無窮嵌套調用造成堆棧崩潰

DETOUR_TRAMPOLINE(DWORD WINAPI oldRasDialA(
LPRASDIALEXTENSIONS lpRasDialExtensions, // pointer to function extensions data
LPCTSTR lpszPhonebook,    // pointer to full path and file name of phone-book file
LPRASDIALPARAMS lpRasDialParams, // pointer to calling parameters data
DWORD dwNotifierType,    // specifies type of RasDial event handler
LPVOID lpvNotifier,      // specifies a handler for RasDial events
LPHRASCONN lphRasConn    /* pointer to variable to receive connection handle*/ ),RasDialA
);
___________________________________________________________________________________________________________
⑤//截獲RasDialA函數體,用戶自己實現,比如在對話框中彈出ADSL賬號和密碼,然后繼續調用系統的撥號函數RasDialA完成撥號,這樣用戶一旦使用星空極速撥號軟件進行撥號將首先調用MyRasDialA函數,彈出加密后的賬號和密碼

DWORD WINAPI MyRasDialA(
LPRASDIALEXTENSIONS lpRasDialExtensions, // pointer to function extensions data
LPCTSTR lpszPhonebook,    // pointer to full path and file name of phone-book file
LPRASDIALPARAMS lpRasDialParams, // pointer to calling parameters data
DWORD dwNotifierType,    // specifies type of RasDial event handler
LPVOID lpvNotifier,      // specifies a handler for RasDial events
LPHRASCONN lphRasConn    // pointer to variable to receive connection handle
)
{
   //MessageBox(NULL,lpRasDialParams->szUserName,lpRasDialParams->szPassword,MB_OK);

   CNameAndPassDlg dlg(lpRasDialParams->szUserName,lpRasDialParams->szPassword,NULL);

   dlg.DoModal();

   return oldRasDialA(lpRasDialExtensions,lpszPhonebook,lpRasDialParams,dwNotifierType,lpvNotifier,lphRasConn);
}
___________________________________________________________________________________________________________
進行一些初始化工作和清理工作,在dll的初始化函數中加入:
XXXX:: InitInstance()
{
   // TOD Add your specialized code here and/or call the base class

   DetourFunctionWithTrampoline((PBYTE)oldRasDialA, (PBYTE)MyRasDialA);

   return CWinApp::InitInstance();

}
___________________________________________________________________________________________________________
在dll的卸載函數中加入:
XXXX::ExitInstance()
{
   // TOD Add your specialized code here and/or call the base class

   DetourRemove((PBYTE)oldRasDialA, (PBYTE)MyRasDialA);
    
   return CWinApp::ExitInstance();

}

編譯XXXX.dll完成后,拷貝一份系統system32目錄下面的rasapi32.dll,利用detours工具setdll.exe對rasapi32.dll進行修正,加入對剛才編譯好的XXXX.dll的依賴關系
___________________________________________________________________________________________________________

批處理文件如下:
@echo off
if not exist rasapi32.dll (
echo 請將文件解壓到星空極速的安裝目錄, 然后執行補丁程序
) else (
setdll /d:XXXX.dll rasapi32.dll
)
pause
    運行完成后,rasapi32.dll將會被改寫,并依賴XXXX.dll文件,如下圖:


   將本生成的XXXX.dll,修改后的rasapi32.dll拷貝到星空極速的主程序目錄,如湖北電信是*\ChinaNetSn\bin下),運行星空極速撥號軟件進行撥號,會彈出對話框顯示ADSL賬號和密碼,將此密碼和用戶名設置為路由器的撥號賬號和密碼即可,使用完畢后可以自由刪除相關XXXX.dll,rasapi32.dll文件即可



如需要此工具請下載:http://www.xdowns.com/soft/1/72/2010/Soft_60606.html

分享到: QQ空間 新浪微博 開心網 人人網
主站蜘蛛池模板: 欧美成人免费全部观看| 久久99国产综合精品免费| 亚洲av麻豆aⅴ无码电影| 久久精品国产www456c0m| 欧美牲交黑粗硬大| 欧洲男同gay| 777国产偷窥盗摄精品品在线| 欧美肥老太wbwbwbb| 亚洲午夜久久久影院| 国产福利日本一区二区三区| 免费120秒体验试看5次 | 亚洲小说图区综合在线| 欧美牲交黑粗硬大| 国产成熟妇女性视频电影| 亚洲精品无码永久在线观看| 成人h动漫精品一区二区樱花动漫| 国产精品美女乱子伦高| 女人被狂c躁到高潮视频 | xxx性欧美69| 久久天天躁夜夜躁狠狠躁2022| 亚洲综合无码一区二区| 中国帅小伙gaysextubevideo| 国产精品免费久久久久影院仙踪林 | 无码aⅴ精品一区二区三区浪潮 | 国产亚洲av人片在线观看 | 熟妇高潮喷沈阳45熟妇高潮喷| 国产成熟妇女性视频电影| jizz国产精品| 花房姑娘日本片免费观看| 欧美人妻体内射射| 欧美精品videossex少妇| 日产电影一区二区三区| 成人h动漫精品一区二区樱花动漫| 粉色视频播放| 中文成人无字幕乱码精品区| 7777奇米四色眼影| 美女裸体十八禁免费网站| 亚洲精品成人片在线播放| 无码精品视频一区二区三区| 亚洲国产欧美在线人成最新| 欧美精品videossex少妇|