JBTALKS.CC

标题: VB 办得到修改Memory资料吗? [打印本页]

作者: goodhermit95    时间: 2008-9-18 10:38 AM
标题: VB 办得到修改Memory资料吗?
VB 办得到吗?像Cheat Engine这样的,不过是指定Memory
我要做游戏的Hack~~~
好像这样的 0S02KDx0 这样的东西
作者: Super-Tomato    时间: 2008-9-18 04:00 PM
你應該去看看 WINAPI 手冊
作者: goodhermit95    时间: 2008-9-18 09:27 PM
标题: 回复 #2 Super-Tomato 的帖子
多谢
我找到了
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
    Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
    Const PROCESS_ALL_ACCESS = &H1F0FFF
可是不太会用…… 这个事改DOTA里面的显示名字的
作者: crazy_91    时间: 2008-9-22 01:19 PM
标题: 回复 #1 goodhermit95 的帖子
可以请问一下什么是VB??
作者: Super-Tomato    时间: 2008-9-22 06:54 PM
原帖由 goodhermit95 于 2008-9-18 09:27 PM 发表
多谢
我找到了
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
    Private D ...



先找出你的application的handle柄句和找出pid的進程, 接下來才用 openprocess 要求對pid的拜訪
找出你application的memory block然後是用 readprocessmemory 讀取後自行修改再對該 block 寫入
作者: goodhermit95    时间: 2008-9-22 11:07 PM
标题: 回复 #5 Super-Tomato 的帖子
用这个API的吧?(read和Write)
作者: ★笨☆天使    时间: 2008-9-26 04:04 PM
原帖由 crazy_91 于 2008-9-22 01:19 PM 发表
可以请问一下什么是VB??

microsoft visual basic
程序开发
作者: Super-Tomato    时间: 2008-9-26 11:49 PM
原帖由 goodhermit95 于 2008-9-22 11:07 PM 发表
用这个API的吧?(read和Write)



ReadProcessMemory是讀取內存地址
WriteProcessMemory是寫入內存地址

函數名已經定義的很清楚了, 只要跟著我上面說的步驟就可以做到, 問題只是你要怎麼用某些軟體得到所要的內存地址
作者: goodhermit95    时间: 2008-9-27 08:01 PM
标题: 回复 #8 Super-Tomato 的帖子
用CheatEngine Scan~~
我班上全部要Game的外挂~
作者: Super-Tomato    时间: 2008-9-27 08:23 PM
這是依照上面所說的方式做出來的例子
作者: goodhermit95    时间: 2008-9-27 09:07 PM
标题: 回复 #10 Super-Tomato 的帖子
WOW
改了什么东西?怎么弄的?
改了什么地址?怎么可以全部Aero Interface?
作者: Super-Tomato    时间: 2008-9-27 10:46 PM
原帖由 goodhermit95 于 2008-9-27 09:07 PM 发表
WOW
改了什么东西?怎么弄的?
改了什么地址?怎么可以全部Aero Interface?



打開 Application 1 之後會看到一個 HP = 100, 然後還有他的記憶體位置.
打開 Application 2 後把 Application 1 所知道的記憶體位置複製到 Application 2 的 Memory Address 欄位值按 Retrieve 就可以從這個記憶體位置取得 100 的 value, 之後可以隨意更改 100 的數值後按 Change 更改


p/s: 把 Application 1 當成遊戲, Application2 為外掛

[ 本帖最后由 Super-Tomato 于 2008-9-27 10:48 PM 编辑 ]
作者: goodhermit95    时间: 2008-9-27 10:48 PM
标题: 回复 #12 Super-Tomato 的帖子
可是我开了里面空空如也?
作者: Super-Tomato    时间: 2008-9-27 11:19 PM
原帖由 goodhermit95 于 2008-9-27 10:48 PM 发表
可是我开了里面空空如也?



應該是你的問題吧?
實例
作者: goodhermit95    时间: 2008-9-27 11:49 PM
标题: 回复 #14 Super-Tomato 的帖子
哦,我没有Compress出来直接Run
我要研究咯
作者: goodhermit95    时间: 2008-9-27 11:57 PM
我的application1 还是空空的?em0007
作者: goodhermit95    时间: 2008-9-28 02:09 PM
标题: 回复 #16 goodhermit95 的帖子
知道了,把aero interface 改掉就可以了
可是游戏会给你Address的?用名字可以吗?
作者: Super-Tomato    时间: 2008-9-28 05:18 PM
原帖由 goodhermit95 于 2008-9-28 02:09 PM 发表
知道了,把aero interface 改掉就可以了
可是游戏会给你Address的?用名字可以吗?



memory address 就需要借助其他軟體找出
而遊戲的memory address不一定是固定的, 也可能是動態, 我以上的例子是固定的
作者: 小蛇丸    时间: 2008-10-1 11:44 AM
喔。。。不错嘛!
作者: goodhermit95    时间: 2008-10-1 12:01 PM
标题: 回复 #18 Super-Tomato 的帖子
可以用system.diagnostics.process.getprocess("where process name = 'application1.exe'")
这个可以拿到PID吗?
作者: Super-Tomato    时间: 2008-10-1 04:55 PM
原帖由 goodhermit95 于 2008-10-1 12:01 PM 发表
可以用system.diagnostics.process.getprocess("where process name = 'application1.exe'")
这个可以拿到PID吗?



你的 getProcesses 參數使用不正確, 你該看看 MSDN 對這個函數的說明, 例子和回傳型態是否符合

http://msdn.microsoft.com/en-us/library/x8b2hzk8.aspx
作者: goodhermit95    时间: 2008-10-2 10:28 AM
看到goodday的Code
改了一下
研究了一下
Dim a = From process In System.Diagnostics.Process.GetProcessesByName("MapleStory.exe")
我在做MapleStoryKeyloggerAntiVirus

作者: Super-Tomato    时间: 2008-10-2 11:38 AM
原帖由 goodhermit95 于 2008-10-2 10:28 AM 发表
看到goodday的Code
改了一下
研究了一下
Dim a = From process In System.Diagnostics.Process.GetProcessesByName("MapleStory.exe")
我在做MapleStoryKeyloggerAntiVirus


剛測試了一下 .NET 確實是可以取得 PID

Dim a As Process
a = Process.GetProcessesByName("xxxx")
作者: goodhermit95    时间: 2008-12-10 11:41 AM
标题: 回复 #23 Super-Tomato 的帖子
咦……那么我就弄得到 MemEmpty 了
之前一直用String所以弄不到




欢迎光临 JBTALKS.CC (https://jbtalks.my/) Powered by Discuz! X2.5