dreamprozone / Special Force / ทำตัวชีดไฟของตัวเอง

ทำตัวชีดไฟของตัวเอง

1) ก่อนแรกเลยให้สร้างโปรเจคใหม่ 'Windows Form Application'2) ให้ทำการสร้างcontrol 3อันนี้Timer1Label1Label23) ในlabel1 ให้ทำการแก้ไขPropertiesตรงlabel1.textให้ป็นStatus จะเป็นอย่างอื่นก็ได้4) ให้เข้าไปในที่ใส่โค้ด แล้ววางโค้ดนี้ลงไปPrivate TargetProcessHandle As IntegerPrivate pfnStartAddr As IntegerPrivate pszLibFileRemote As StringPrivate TargetBufferSize As IntegerPublic Const PROCESS_VM_READ = &H10Public Const TH32CS_SNAPPROCESS = &H2Public Const MEM_COMMIT = 4096Public Const PAGE_READWRITE = 4Public Const PROCESS_CREATE_THREAD = (&H2)Public Const PROCESS_VM_OPERATION = (&H8)Public Const PROCESS_VM_WRITE = (&H20)Dim DLLFileName As StringPublic Declare Function ReadProcessMemory Lib "kernel32" ( _ByVal hProcess As Integer, _ByVal lpBaseAddress As Integer, _ByVal lpBuffer As String, _ByVal nSize As Integer, _ByRef lpNumberOfBytesWritten As Integer) As IntegerPublic Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" ( _ByVal lpLibFileName As String) As IntegerPublic Declare Function VirtualAllocEx Lib "kernel32" ( _ByVal hProcess As Integer, _ByVal lpAddress As Integer, _ByVal dwSize As Integer, _ByVal flAllocationType As Integer, _ByVal flProtect As Integer) As IntegerPublic Declare Function WriteProcessMemory Lib "kernel32" ( _ByVal hProcess As Integer, _ByVal lpBaseAddress As Integer, _ByVal lpBuffer As String, _ByVal nSize As Integer, _ByRef lpNumberOfBytesWritten As Integer) As IntegerPublic Declare Function GetProcAddress Lib "kernel32" ( _ByVal hModule As Integer, ByVal lpProcName As String) As IntegerPrivate Declare Function GetModuleHandle Lib "Kernel32" Alias "GetModuleHandleA" ( _ByVal lpModuleName As String) As IntegerPublic Declare Function CreateRemoteThread Lib "kernel32" ( _ByVal hProcess As Integer, _ByVal lpThreadAttributes As Integer, _ByVal dwStackSize As Integer, _ByVal lpStartAddress As Integer, _ByVal lpParameter As Integer, _ByVal dwCreationFlags As Integer, _ByRef lpThreadId As Integer) As IntegerPublic Declare Function OpenProcess Lib "kernel32" ( _ByVal dwDesiredAccess As Integer, _ByVal bInheritHandle As Integer, _ByVal dwProcessId As Integer) As IntegerPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ByVal lpClassName As String, _ByVal lpWindowName As String) As IntegerPrivate Declare Function CloseHandle Lib "kernel32" Alias "CloseHandleA" ( _ByVal hObject As Integer) As Integerโค้ดพวกนี้เป็นการdeclareทั้งหลายเพื่อที่จะนำไปใช้ในการยิ่งdllวางตรงไหนในที่ใส่โค้ดก็ได้ แต่ต้องอยุ่ระวห่างpublic class - end class5) หลังจากนั้นเราต้องมาแอดโค้ดที่ทำการinject dllก่อนให้แอดโค้ดนี้ลงไปPrivate Sub Inject()Dim name As String = Application.StartupPath + "\SpeedHack.dll"On Error GoTo 1Timer1.Stop()Dim TargetProcess As Process() = Process.GetProcessesByName("nksp")TargetProcessHandle = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_WRITE, False, TargetProcess(0).Id)pszLibFileRemote = namepfnStartAddr = GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA")TargetBufferSize = 1 + Len(pszLibFileRemote)Dim Rtn As IntegerDim LoadLibParamAdr As IntegerLoadLibParamAdr = VirtualAllocEx(TargetProcessHandle, 0, TargetBufferSize, MEM_COMMIT, PAGE_READWRITE)Rtn = WriteProcessMemory(TargetProcessHandle, LoadLibParamAdr, pszLibFileRemote, TargetBufferSize, 0)CreateRemoteThread(TargetProcessHandle, 0, 0, pfnStartAddr, LoadLibParamAdr, 0, 0)CloseHandle(TargetProcessHandle)1:End Subโค้ดด่างบนนี้เป็นโค้ดสำหรับยิ่งdllนั้นเองให้ทำการแก้/อธิบายDim name As String = Application.StartupPath + "\SpeedHack.dll"อันนี้เป็นpathที่อยู่ของไฟล์dllที่คุณต้องการจะให้dllยิ่งไป application.startuppathคือโค้ดที่ให้ฟาที่อยู่ของไฟล์.exeของเรา ถ้าต้องการจะใช้pathเดียวกับผมก็ให้ให้ทำการเอาdllที่ต้องการจะให้โปรแรกมยิ่งไปวางไว้ในที่เดียวกันกับ.exeโปรแรกมของเรา แล้วให้ทำการเปลี่ยน SpeedHack.dllเป็นชื่อ .dllของคุณDim TargetProcess As Process() = Process.GetProcessesByName("nksp")โค้ดนี้เป้นโค้ดที่จะระบุว่าจะให้ยิ่งdllเข้าไปในProcessไหน nkspที่ใช่คือชื่อprocessของ เกมlast chaos process nameคืออะไรก็ง่ายๆ คือชื่อกับไฟล์.exeนั้นเอง เช่นspecialforce.exe ให้ทำากรพิมspecialforce ไม่ต้องมี.exe เกมอื่นก็เหมือนกัน ไม่ต้องพิม.exe6) โค้ดอันสุดท้ายโค้ดนี้จะเป็นตัวเช็คว่า.exeรันอยุ่รึยัง แล้วท่ารันให้ทำการinjectพร้อมกับแสดงstatusในlabel2เพื่อให้ผู้ใช้รู้ว่าโปรแรกมทำงานหรือยังไม่ได้ทำงานให้แอดโค้ดนี้ลงไปในTimer1_TickDim name As String = Application.StartupPath + "\SpeedHack.dll"If IO.File.Exists(Name) ThenDim TargetProcess As Process() = Process.GetProcessesByName("nksp")If TargetProcess.Length = 0 ThenLabel2.Text = ("Waiting for " + "nksp" + ".exe")ElseTimer1.Stop()Label2.Text = "Successfully Injected!"Call Inject()End IfElseMsgBox("SpeedHack.Dll doesn't exisit")End Ifอธิบาย/สิ่งที่ต้องการแก้Dim name As String = Application.StartupPath + "\SpeedHack.dll"เหมือนเดิมระบุpathของdllDim TargetProcess As Process() = Process.GetProcessesByName("nksp")ระบุprocessที่ต้องการจะยิ่งdllเข้าไปIf TargetProcess.Length = 0 ThenLabel2.Text = ("Waiting for nksp.exe")ElseTimer1.Stop()Call Inject()Label2.Text = "Successfully Injected!"End Ifถ้า tartgeprocess.length ถ้าเท่ากับศูนแสดงว่าโปรแรกมนั้นไม่รันอยู่ในที่นี้ โค้ดผมใช้if end ifถ้า processของเราไม่รันอยุ่ให้ทำการdisplay ว่า Waiting for nksp.exe ในlabel2.textสามารถเปลีย่นtextทีต้องการจะให้displayได้Else ถ้าไมใช้ถ้าโปรแกรมรันอยู่ให้ทำการหยุดtimer1 แล้วให้ทำการเรียกทำการฟั่งชุ่น injectเพื่อทำการยิ่งdllหลังจากนั้นให้ทำการdispalyว่า successfully injected หมายความว่ายิ่งสำเร็จแล้วนั้นเองMsgBox("SpeedHack.Dll doesn't exisit")ก่อนหน้านี้เราได้ใช้ifไว้ตอนแรกด้วย ก็คือท่าspeedhack.dllของเราไม่อยุ่หรือpathหาไม่เจอ ก็จะให้ทำการโชmessage boxที่เขียนว่า SpeedHack.Dll doesn't exisit หรือspeedhack.dllไม่อยู่นั้นเอง7) ตอนนี้คุณได้เขียนโปรแรกมdll injectorของตัวเองแล้วยินดีด้วยครับห้ามเอาไปโพสแจกที่เว็ปอื่น ถ้าพบเห็นผมจะไม่มาโพสแจกสมาชิคฟรีๆ

kothebighitSat Mar 31 2012 20:33:39 GMT+0700 (ICT)