首页
社区
课程
招聘
[求助]关于内存动态补丁
发表于: 2005-1-3 21:08 5108

[求助]关于内存动态补丁

2005-1-3 21:08
5108
请问用R!SC's Process Patcher做的内存动态补丁,有办法知道它对程序做了怎样的修改吗?也就是根据做好的补丁,有办法知道它对应的那个脚本文件吗?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
2
下bp WriteProcessMemory断点,中断后,看一下,就知道补丁修改程序的什么地方了
2005-1-3 21:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
它没用那个函数啊,它用到的函数有
ADVAPI32.AdjustTokenPrivileges   ;设置特权属性
ADVAPI32.LookupPrivilegeValueA   ;找出令牌特权的luid
ADVAPI32.OpenProcessToken        ;打开令牌
ADVAPI32.RegCloseKey
ADVAPI32.RegCreateKeyExA
ADVAPI32.RegOpenKeyExA
ADVAPI32.RegQueryValueExA
ADVAPI32.RegSetValueExA
ADVAPI32.SetFileSecurityA   ;设置文件或目录安全属性
ADVAPI32.SetFileSecurityW
COMCTL32.SetFileSecurityW
COMDLG32.CommDlgExtendedError ;可以为对话框提供一个CFHOOKProc挂钩程序
COMDLG32.GetOpenFileNameA
GDI32.DeleteObject
KERNEL32.CloseHandle
KERNEL32.CompareStringA
KERNEL32.CreateDirectoryA
KERNEL32.CreateDirectoryW
KERNEL32.CreateFileA
KERNEL32.CreateFileW
KERNEL32.DeleteFileA
KERNEL32.DeleteFileW
KERNEL32.DosDateTimeToFileTime ;将DOS日期和时间值转换成一个FileTime值
KERNEL32.ExitProcess
KERNEL32.ExpandEnvironmentStringsA ;返回环境变量的扩展值
KERNEL32.FileTimeToLocalFileTime
KERNEL32.FileTimeToSystemTime
KERNEL32.FindClose
KERNEL32.FindFirstFileA
KERNEL32.FindFirstFileW
KERNEL32.FindNextFileA
KERNEL32.FindNextFileW
KERNEL32.FindResourceA   ;查找一个资源
KERNEL32.FreeLibrary
KERNEL32.GetCommandLineA
KERNEL32.GetCPInfo
KERNEL32.GetCurrentDirectoryA
KERNEL32.GetCurrentProcess
KERNEL32.GetDateFormatA
KERNEL32.GetFileAttributesA
KERNEL32.GetFileAttributesW
KERNEL32.GetFileType
KERNEL32.GetFullPathNameA
KERNEL32.GetLastError      ;返回本线程的最后一次错误代码
KERNEL32.GetLocaleInfoA
KERNEL32.GetModuleFileNameA ;获取一个已装载模板的完整路径名称
KERNEL32.GetModuleHandleA
KERNEL32.GetNumberFormatA  ;按特定的格式格式化一个数字
KERNEL32.GetProcAddress    ;获取DLL 导出函数的地址
KERNEL32.GetProcessHeap    ;返回当前进程堆的句柄
KERNEL32.GetStdHandle  ;与WriteFile一起用可向屏幕输出信息
KERNEL32.GetTempPathA
KERNEL32.GetTickCount  ;获取系统时钟计数器的值
KERNEL32.GetTimeFormatA
KERNEL32.GetVersionExA
KERNEL32.GlobalAlloc   ;从堆中分配内存
KERNEL32.HeapAlloc     ;动态分配内存
KERNEL32.HeapFree
KERNEL32.HeapReAlloc   ;根据需要调整内存块大小
KERNEL32.IsDBCSLeadByte ;判断某字节是否在双字节字符集(例如汉字)的前导字节集中
KERNEL32.LoadLibraryA
KERNEL32.LocalFileTimeToFileTime
KERNEL32.lstrcmpiA
KERNEL32.lstrlenA
KERNEL32.MoveFileA
KERNEL32.MoveFileExA
KERNEL32.MultiByteToWideChar
KERNEL32.ReadFile
KERNEL32.SetCurrentDirectoryA
KERNEL32.SetEndOfFile   ;把文件指针放在文件尾
KERNEL32.SetEnvironmentVariableA
KERNEL32.SetFileAttributesA
KERNEL32.SetFileAttributesW
KERNEL32.SetFilePointer
KERNEL32.SetFileTime
KERNEL32.SetLastError
KERNEL32.Sleep
KERNEL32.SystemTimeToFileTime
KERNEL32.WaitForSingleObject
KERNEL32.WideCharToMultiByte
KERNEL32.WriteFile
OLE32.CLSIDFromString
OLE32.CoCreateInstance
OLE32.CreateStreamOnHGlobal
OLE32.OleInitialize
OLE32.OleUninitialize
SHELL32.SHBrowseForFolderA
SHELL32.SHChangeNotify
SHELL32.ShellExecuteExA
SHELL32.SHFileOperationA
SHELL32.SHGetFileInfoA
SHELL32.SHGetMalloc
SHELL32.SHGetPathFromIDListA
SHELL32.SHGetSpecialFolderLocation
USER32.CharToOemBuffA
USER32.CharUpperA   ;允许我们指定字串中需转换的字符数量
USER32.CopyRect
USER32.CreateWindowExA
USER32.DefWindowProcA
USER32.DestroyIcon
USER32.DestroyWindow
USER32.DialogBoxParamA
USER32.DispatchMessageA
USER32.EnableWindow
USER32.EndDialog
USER32.FindWindowExA
USER32.GetClassNameA
USER32.GetClientRect
USER32.GetDlgItem
USER32.GetDlgItemTextA
USER32.GetMessageA
USER32.GetParent
USER32.GetSysColor
USER32.GetSystemMetrics
USER32.GetWindow
USER32.GetWindowLongA
USER32.GetWindowRect
USER32.GetWindowTextA
USER32.IsWindow
USER32.IsWindowVisible
USER32.LoadBitmapA
USER32.LoadCursorA
USER32.LoadIconA
USER32.LoadStringA
USER32.MapWindowPoints
USER32.MessageBoxA
USER32.OemToCharA
USER32.OemToCharBuffA
USER32.PeekMessageA
USER32.PostMessageA
USER32.RegisterClassExA
USER32.SendDlgItemMessageA
USER32.SendMessageA
USER32.SetDlgItemTextA
USER32.SetFocus
USER32.SetMenu
USER32.SetWindowLongA
USER32.SetWindowPos
USER32.SetWindowTextA
USER32.ShowWindow
USER32.TranslateMessage
USER32.UpdateWindow
USER32.WaitForInputIdle
USER32.wsprintfA
USER32.wvsprintfA
请问哪个是动态补丁用来修改进程的啊?
2005-1-3 23:00
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
4
好像就是用WriteProcessMemory
2005-1-3 23:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我试了 WriteProcessMemory没用,补丁不用这个。
2005-1-3 23:18
0
雪    币: 159
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
帮忙看看,这个内存补丁修改了哪里?
我不知道看哪里?
2005-1-3 23:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
BOOL WriteProcessMemory(
    HANDLE hProcess,  // 被写的进程的句柄
    LPVOID lpBaseAddress, // 开始写的地址
    LPVOID lpBuffer,  // 要写入的数据存放地址
    DWORD nSize,      // 要写的数量,以字节为单位
    LPDWORD lpNumberOfBytesWritten // 实际上写的数量,以字节为单位
                            );
上面的图:被写的进程的句柄hProcess=0000007C  
         开始写的地址lpBaseAddress=5AC468
         要写入的数据存放地址lpBuffer=00EEBCE8
         要写的数量为2个字节(怎么让我想起暴破了:)
         实际上写的数量=0(被你中断了还没写呢:)

可是我说的这个补丁(是用R!sc做的)不用这个函数,郁闷啊,俺是菜鸟哪个DX给指点一下啊!
2005-1-4 01:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
R!sc的确用的WriteProcessMemory,一开始是我的电脑有点问题(保护措施太强了:),现在问题解决了。
2005-1-4 18:51
0
游客
登录 | 注册 方可回帖
返回
//