C利用句柄操作窗口_第1頁
C利用句柄操作窗口_第2頁
C利用句柄操作窗口_第3頁
C利用句柄操作窗口_第4頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

c#實(shí)現(xiàn)過程:過程一:找到當(dāng)前鼠標(biāo)位置的句柄您的使用2個(gè)WinAPI(俺喜歡自己封裝下來用):田日ViewCode[Dlllmport( EntryPoint="GetCursorPos")]publicstaticexternboolGetCursorPos(outPointpt);[Dlllmport("",EntryPoint="WindowFromPoint")]publicstaticexternIntPtrWindowFromPoint(Pointpt);SBEHEBndexOf;)publicoverridestringToString()(StringBuilderresult= newStringBuilder();for(WinHWNDwinHandle=this;winHandle!=null(( "{0}:{1};" ,Escape,if==-1)break;;winHandle=return().TrimEnd();privatestaticstringGetBaseMark(stringsMark)string[]sMarks=();returnsMarks[-1].Split()[0];privatestaticstring[]GetChildMarks(stringsMark)string[]sMarks=();string[]sChildMarks=newstring[-string[]sChildMarks=newstring[-1];for(inti=0;i<;isChildMarks[i]=sMarks[i];returnsChildMarks;foreach(IntPtrbaseHwndinbaseHwnds)IntPtrhandle=baseHwnd;for(inti=- 1;i>= 0;i-)string[]sChildMark=sChildMarks[i].Split(tryhandle=(handle,UnEscape(sChildMark[catch);O]))[(sChildMark[1])];break;if(i==0)returnnewWinHWND(handle);}continue;)returnnull;#region轉(zhuǎn)義privatestaticprivatestaticstringEscape(stringarg)return(").Replace( );privatestaticprivatestaticstringUnEscape(stringarg)return().Replace( );#endregionpublicstaticWinHWNDGetWinHWND()(returnnewWinHWND()));))上全部代碼,里面加了窗口的部分屬性,擴(kuò)展其他的屬性,自己發(fā)揮吧,就是搞WinAPI田臼ViewCodeusingSystem;usingusing;using;usingusing;using;namespacelnformationCollectionDataF川publicclassWinAPI#regionWinodwsAPI[Dlllmport("",EntryPoint"FindWindow")]privatestaticexternIntPtrFindWindow(stringIpCIassName,stringIpWindowName);[Dlllmport("",EntryPoint="FindWindowEx")]privatestaticexternIntPtrFindWindowEx(lntPtrhwndParent,IntPtrhwndChildAfter, stringIpszClass,stringIpszWindow);[Dlllmport( "",EntryPoint= "SendMessage")]privatestaticexternintSendMessage(lntPtrhWnd,intMsg,IntPtrwParam,stringIParam);[Dlllmport( "",EntryPoint= "GetParent")]publicstaticexternIntPtrGetParent(lntPtrhWnd);[Dlllmport( Entrypoint="GetCursorPos")]publicstaticexternboolGetCursorPos(outPointpt);[Dlllmport("",EntryPoint="WindowFromPoint",CharSet=,ExactSpelling=true)]publicstaticexternIntPtrWindowFromPoint(Pointpt);[Dlllmport( "",CharSet=]publicstaticexternintGetClassName(lntPtrhWnd,StringBuilderIpCIassName,intnMaxCount);[Dlllmport( "",CharSet=]

public[Dlllmport(public[Dlllmport(public[Dlllmport(public[Dlllmport(public"",CharSet=]static extern int GetWindowRect(lntPtrhwnd, ref Rectanglerc);"",CharSet=]static extern int GetClientRect(lntPtrhwnd, ref Rectanglerc);"",CharSet=]static extern int MoveWindow(lntPtrhwnd, int x, inty,intnWidth, intnHeight,boolbRepaint);[Dlllmport([Dlllmport("",CharSet=,SetLastError=true,ExactSpelling=true)]publicstaticexternintScreenToClient(lntPtrhWnd,refRectanglerect);#endregion#region封裝API方法ndexOf;}privateRectangleGetRect()(if==null)returndefault(Rectangle);Rectangleclientsize=;RectangleclientPoint=);returnnewRectangle,,,;)publicstaticWinHWNDGetWinHWND()returnnewWinHWND()));)publicoverridestringToStringOStringBuilderresult=newStringBuilder();for(WinHWNDwinHandle=this;winHandle!=null"{0}:{1};" ,Escape,if==-1)break;return().TrimEnd();)privatestaticstringGetBaseMark(stringsMark);winHandle=string[]sMarks=();returnsMarks[-1].Split()[0];)privatestaticstring[]GetChildMarks(stringsMark)string[]sMarks=();string[]sChildMarks=newstring[-1];for(inti=0;i<;i++)sChildMarks[i]=sMarks[i];returnsChildMarks;)foreach(IntPtrbaseHwndinbaseHwnds)IntPtrhandle=baseHwnd;for(inti=- 1;i>= 0;i-)tryhandle=(handle,UnEscape(sChildMark[catchbreak;if0)returnnewWinHWND(handle);ifO]))[(sChildMark[1])];continue;returnnull;)#region轉(zhuǎn)義privatestaticstringEscape(stringarg)return( ).Replace( );privatestaticstringUnEscape(stringarg),).Replace( );,).Replace( );}#endregion)}效果:Postsubject:DllInjectionThisismyoldtutorialondllinjection...peoplehavebeenaskingaboutthistopicabitrecently,so...hereitis:DllInjectionTutorialbyDarawkIntroductionTheCreateRemoteThreadmethodTheSetWindowsHookExmethodThecodecavemethodAppendixA-MethodsofobtainingaprocessIDAppendixB-MethodsofobtainingathreadIDAppendixC-CompleteCreateRemoteThreadexamplesourcecodeAppendixD-CompleteSetWindowsHookExexamplesourcecodeAppendixE-CompletecodecaveexamplesourcecodeIntroductionInthistutoriali'lltrytocoveralloftheknownmethods(oratleast,thosethatIknow=p)ofinjectingdll'sintoaprocess.DllinjectionisincrediblyusefulforTONSofstuff(gamehacking,functionhooking,codepatching,keygenning,unpacking,etc..).Thoughtherearescatteredtutorialsonthesetechniquesavailablethroughouttheweb,Ihaveyettoseeanycompletetutorialsdetailingallofthem(theremayevenbemoreouttherethanIhavehere,ofcourse),andcomparingtheirrespectivestrength'sandweakness's.Thisispreciselywhati'llattempttodoforyouinthispaper.Youarefreetoreproduceorcopythispaper,solongaspropercreditisgivenandyoudon'tmodifyitwithoutspeakingtomefirst.TheCreateRemoteThreadmethodI'veusedthisintonsofstuff,andIonlyrecentlyrealizedthatalotofpeoplehaveneverseenit,orknowhowtodoit.Ican'ttakecreditforthinkingitup...Igotitfromanarticleoncodeproject,butit'saneattrickthatIthinkmorepeopleshouldknowhowtouse.Thetrickissimple,andelegant.ThewindowsAPIprovidesuswithafunctioncalledCreateRemoteThread().Thisallowsyoutostartathreadinan

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論