黃易群俠傳M脫機外掛應用程式黃易神行
5469
0

[分享] 楓之專業V115之無法用原因如下

in9955 發表於 2010-5-15 09:12:05 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |
[原創] 楓之專業 無法使用原因 轉自http://a2337028.ikhost.tk/viewthread.php?tid=55&extra=page%3D1
楓之專業V115無法使用原因是....
真的被我猜中了...
無法過HS...注入器 末更新....

在剛剛放學 在浪漫 找到 煥大 發的文了!
以下是給老鳥 董製作外掛的人看的..

  • /* dr.cpp : Defines the entry point for the DLL application.
  • *****廣告網址!!!!請向板主檢舉!!!!*****: hi.baidu.com/maydayhuan
  • */
  • #include "stdafx.h"
  • #include "resource.h"
  • #include "windows.h"
  • #include "tlhelp32.h"
  • #include "iostream.h"
  • #include "stdio.h"
  • struct debuger0{
  • DWORD addr;
  • DWORD dr;
  • DWORD caozuo;
  • };
  • LRESULT CALLBACK     dlgx(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
  • DWORD WINAPI         ThreadProc( LPVOID lpParameter );
  • DWORD WINAPI         debugProc( LPVOID lpParameter );
  • HINSTANCE hinst;
  • DWORD lst[100];
  • char mychar[50];
  • void ck(WORD   wID, WORD   wNF);
  • void* (__stdcall *AddVectoredExceptionHandlerx)(ULONG FirstHandler,void* VectoredHandler);
  • HANDLE (__stdcall *OpenThread)(DWORD dwDesiredAccess, BOOL bInheritHandle,DWORD dwThreadId);
  • debuger0 debuger1;
  • void RefreshThreadList (DWORD dwOwnerPID)
  • {
  • HANDLE        hThreadSnap = NULL;
  • BOOL          bRet        = FALSE;
  • THREADENTRY32 te32        = {0};
  • int px=0;
  • // Take a snapshot of all threads currently in the system.
  • hThreadSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
  • //if (hThreadSnap == INVALID_HANDLE_VALUE)
  • // return ;
  • te32.dwSize = sizeof(THREADENTRY32);
  • if (Thread32First(hThreadSnap, &te32))
  • {
  •    px=0;
  •    do
  •    {
  •     if (te32.th32OwnerProcessID == dwOwnerPID&&dwOwnerPID!=0)
  •     {
  •      lst[px]=te32.th32ThreadID;
  •      px++;
  •     }
  •    }
  •    while (Thread32Next(hThreadSnap, &te32));
  • }
  • //   OutputDebugString(":刷新线程");
  • CloseHandle (hThreadSnap);
  • }
  • BOOL APIENTRY DllMain( HINSTANCE hModule,
  •                        DWORD ul_reason_for_call,
  •                        LPVOID lpReserved
  •       )
  • {
  •     switch (ul_reason_for_call)
  • {
  •    case DLL_PROCESS_ATTACH:
  •     CreateThread(NULL,255,ThreadProc,NULL,0,NULL);
  •     hinst=hModule;
  •    case DLL_THREAD_ATTACH:
  •    case DLL_THREAD_DETACH:
  •    case DLL_PROCESS_DETACH:
  •     break;
  •     }
  •     return TRUE;
  • }
  • void ck(HWND dlg,WORD   id, WORD   wm)
  • {
  • //////////////////////////////////////////////////////////////////////////
  •     if(id==IDC_CHECK1)
  • {
  •    if(IsDlgButtonChecked(dlg,id))
  •    {
  •    debuger1.addr=0x0095AFD3;
  •    debuger1.caozuo=1;
  •    debuger1.dr=0;
  •    CreateThread(NULL,255,(LPTHREAD_START_ROUTINE)debugProc,NULL,0,NULL);
  •    }else
  •    {
  •     debuger1.addr=0x0095AFD3;
  •     debuger1.caozuo=0;
  •     debuger1.dr=0;
  •    CreateThread(NULL,255,(LPTHREAD_START_ROUTINE)debugProc,NULL,0,NULL);
  •    }
  • }
  • //////////////////////////////////////////////////////////////////////////
  • }
  • LRESULT CALLBACK dlgx(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
  • {
  • switch (message)
  • {
  •    case WM_INITDIALOG:
  •     return TRUE;
  •    case WM_COMMAND:
  •     WORD   wID   =   LOWORD(   wParam   );
  •             WORD   wNF   =   HIWORD(   wParam   );
  •     if(wID==IDCANCEL)
  •     {
  •     TerminateProcess(GetCurrentProcess(),0);
  •      }
  •     if(wNF=BST_CHECKED)
  •     {
  •             ck(hDlg,wID,wNF);
  •     }
  •     break;
  • }
  •     return 0;
  • }
  • LONG WINAPI GPTUnhandledExceptionFilter(PEXCEPTION_POINTERS pExceptionInfo)
  • {
  •    if(pExceptionInfo->ExceptionRecord->ExceptionCode==0x80000004)
  •    {
  •        if(pExceptionInfo->ExceptionRecord->ExceptionAddress==(PVOID)0x0095AFD3)
  •     {
  •      pExceptionInfo->ContextRecord->Eip=(DWORD)0x0095c475;
  •      return   EXCEPTION_CONTINUE_EXECUTION;
  •     }
  •    }
  •    return EXCEPTION_CONTINUE_SEARCH ;
  • }
  • DWORD WINAPI ThreadProc(
  • LPVOID lpParameter   // thread data
  • )
  • {
  • HINSTANCE slib=LoadLibrary("kernel32.dll");
  • *(FARPROC*) &AddVectoredExceptionHandlerx=GetProcAddress(slib,"AddVectoredExceptionHandler");
  •     *(FARPROC*) &OpenThread=GetProcAddress(slib,"OpenThread");
  •     AddVectoredExceptionHandlerx(1,GPTUnhandledExceptionFilter);
  • RefreshThreadList(GetCurrentProcessId());
  • //设置键盘钩子
  •     DialogBox(hinst,(LPCTSTR)IDD_DIALOG1,NULL,(DLGPROC)dlgx);
  •     return 1;
  • }
  • DWORD WINAPI         debugProc(LPVOID lpParameter )
  • {
  • if(debuger1.caozuo==1)
  • {
  •    //打开
  •    RefreshThreadList(GetCurrentProcessId());
  •    for(int i=0;i<100;i++)
  •    {
  •     if(lst==0)
  •     {
  •     break;
  •     }
  •     if(lst!=GetCurrentThreadId())
  •     {
  •     HANDLE thd=OpenThread(THREAD_ALL_ACCESS,true,lst);
  •     SuspendThread(thd);
  •     CONTEXT con;
  •     con.ContextFlags=CONTEXT_CONTROL|CONTEXT_DEBUG_REGISTERS;
  •     GetThreadContext(thd,&con);
  •     if(debuger1.dr==0)
  •     {
  •     con.Dr0=debuger1.addr;
  •     con.Dr7=con.Dr7|0x3;
  •     }
  •     if(debuger1.dr==1)
  •     {
  •      con.Dr1=debuger1.addr;
  •      con.Dr7=con.Dr7|0xc;
  •     }
  •     if(debuger1.dr==2)
  •     {
  •      con.Dr2=debuger1.addr;
  •      con.Dr7=con.Dr7|0x30;
  •     }
  •     if(debuger1.dr==3)
  •     {
  •      con.Dr3=debuger1.addr;
  •      con.Dr7=con.Dr7|0xc0;
  •     }
  •     con.ContextFlags= CONTEXT_CONTROL|CONTEXT_DEBUG_REGISTERS;
  •     SetThreadContext(thd,&con);
  •     ResumeThread(thd);
  •     }
  •    }
  • }else
  • {
  •      //关闭
  •    //打开
  •    RefreshThreadList(GetCurrentProcessId());
  •    for(int i=0;i<100;i++)
  •    {
  •     if(lst==0)
  •     {
  •      break;
  •     }
  •     if(lst!=GetCurrentThreadId())
  •     {
  •      HANDLE thd=OpenThread(THREAD_ALL_ACCESS,true,lst);
  •      SuspendThread(thd);
  •      CONTEXT con;
  •      con.ContextFlags=CONTEXT_CONTROL|CONTEXT_DEBUG_REGISTERS;
  •      GetThreadContext(thd,&con);
  •      if(debuger1.dr==0)
  •      {
  •       con.Dr0=debuger1.addr;
  •       con.Dr7=con.Dr7&~0x3;
  •      }
  •      if(debuger1.dr==1)
  •      {
  •       con.Dr1=debuger1.addr;
  •       con.Dr7=con.Dr7&~0xc;
  •      }
  •      if(debuger1.dr==2)
  •      {
  •       con.Dr2=debuger1.addr;
  •       con.Dr7=con.Dr7&~0x30;
  •      }
  •      if(debuger1.dr==3)
  •      {
  •       con.Dr3=debuger1.addr;
  •       con.Dr7=con.Dr7&~0xc0;
  •      }
  •      con.ContextFlags= CONTEXT_CONTROL|CONTEXT_DEBUG_REGISTERS;
  •      SetThreadContext(thd,&con);
  •      ResumeThread(thd);
  •     }
  •    }
  • }
  • debuger1.addr=0;
  • debuger1.caozuo=0;
  • debuger1.dr=0;
  • return true;
  • }

複製代碼


可過目前HS 設置硬件斷點 DR0-DR3。好了,該應對高考了。
嗯..想說點什麽呢,我估計ICS也差不多要拜拜了 多個硬斷也無差.


以上是由 浪漫 流出
此由 外掛天堂 分享
我知道大家不懂 我也不懂 只知道 過幾天 就有外掛可以用了
因為 這是新的注入器的dll.
友信去的自己慢慢研究吧~!


外掛天堂 - POST版權
收藏收藏 分享分享 讚 幹 分享分享 FB分享
回覆

使用道具 舉報


您需要登錄後才可以回帖 登錄 | 註冊


手機版 | Archiver | 外掛聯合國

GMT+8, 2024-6-9 11:28 , Processed in 0.053956 second(s), 20 queries , Memcache On.

版權說明:
  本站不會製作、經銷、代理外掛程式。僅免費提供外掛程式下載前之掃毒及掃木馬等安全檢測驗證,協助會員遠離盜號危險程式。本站所有資料均來自網際網路收集整理,說明文字暨下載連結轉載自原程 式開發站。站上出現之公司名稱、遊戲名稱、程式等,商標及著作權,均歸各公司及程式原創所有,本站程式所有權歸外掛聯合國所有。本程式所有權歸外掛聯合國所有.......

回頂部
第二步?
第三步?