Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
楼主: goodday
打印 上一主题 下一主题

代购 电脑书

 关闭 [复制链接]

13

主题

0

好友

2113

积分

白金长老

Rank: 10

21#
发表于 2009-5-4 10:07 PM |只看该作者
写读游戏的 内存 读法

一目了然的 东西


回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

22#
发表于 2009-5-17 10:08 PM |只看该作者
goodday 虽然一直推荐书,可是还是要自己努力研究的啊

游戏内存读取
windows.h / user32.dll


回复

使用道具 举报

13

主题

0

好友

2113

积分

白金长老

Rank: 10

23#
发表于 2009-5-23 11:02 AM |只看该作者
  1.         //==============================================================================================//
  2.         // Function:            MemoryOpen(int ProcessID[, Enum DesiredAccess[, bool InheritHandle]]))  //
  3.         //______________________________________________________________________________________________//
  4.         // Description:         Opens a process and enables all possible access rights to the process,  //
  5.         //                      the Process ID of the process is used to specify which process to open. //
  6.         //______________________________________________________________________________________________//
  7.         // Parameter(s):        int ProcessID - The Process ID of the program you want to open.         //
  8.         //                                                                                              //
  9.         //                      Enum DesiredAccess - The desired access.                                //
  10.         //                                                -All                                          //
  11.         //                                                -Terminate                                    //
  12.         //                                                -CreateThread                                 //
  13.         //                                                -VMOperation                                  //
  14.         //                                                -VMRead                                       //
  15.         //                                                -VMWrite                                      //
  16.         //                                                -DupHandle                                    //
  17.         //                                                -SetInformation                               //
  18.         //                                                -QueryInformation                             //
  19.         //                                                -Synchronize                                  //
  20.         //                                                                                              //
  21.         //                      Bool InheritHandle - All processes created by this process will inherit //
  22.         //                                           the access handle.                                 //
  23.         //                                                -true                                         //
  24.         //                                                -false                                        //
  25.         //______________________________________________________________________________________________//
  26.         // Return Value(s):     On Success - Returns the process handle                                 //
  27.         //                        On Failure - Returns 0                                                  //
  28.         //==============================================================================================//
  29.         [DllImport("kernel32.dll")]
  30.         static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, bool bInheritHandle, int dwProcessId);


  31.         static public IntPtr MemoryOpen(int ProcessID)
  32.         {
  33.             System.Diagnostics.Process MyProc = System.Diagnostics.Process.GetProcessById(ProcessID);
  34.             if (MyProc.HandleCount > 0)
  35.             {
  36.                 IntPtr hProcess = OpenProcess(0x1F0FFF, true, ProcessID); ;
  37.                 return hProcess;
  38.             }
  39.             else
  40.             {
  41.                 return (IntPtr)0x00000000;
  42.             }

  43.         }

  44.         static public IntPtr MemoryOpen(int ProcessID, ProcessAccessFlags DesiredAccess)
  45.         {
  46.             System.Diagnostics.Process MyProc = System.Diagnostics.Process.GetProcessById(ProcessID);
  47.             if (MyProc.HandleCount > 0)
  48.             {
  49.                 IntPtr hProcess = OpenProcess((uint)DesiredAccess, true, ProcessID); ;
  50.                 return hProcess;
  51.             }
  52.             else
  53.             {
  54.                 return (IntPtr)0x00000000;
  55.             }

  56.         }

  57.         static public IntPtr MemoryOpen(int ProcessID, ProcessAccessFlags DesiredAccess, bool InheritHandle)
  58.         {
  59.             System.Diagnostics.Process MyProc = System.Diagnostics.Process.GetProcessById(ProcessID);
  60.             if (MyProc.HandleCount > 0)
  61.             {
  62.                 IntPtr hProcess = OpenProcess((uint)DesiredAccess, InheritHandle, ProcessID); ;
  63.                 return hProcess;
  64.             }
  65.             else
  66.             {
  67.                 return (IntPtr)0x00000000;
  68.             }

  69.         }

  70.         [Flags]
  71.         public enum ProcessAccessFlags : uint
  72.         {
  73.             All = 0x001F0FFF,
  74.             Terminate = 0x00000001,
  75.             CreateThread = 0x00000002,
  76.             VMOperation = 0x00000008,
  77.             VMRead = 0x00000010,
  78.             VMWrite = 0x00000020,
  79.             DupHandle = 0x00000040,
  80.             SetInformation = 0x00000200,
  81.             QueryInformation = 0x00000400,
  82.             Synchronize = 0x00100000
  83.         }

  84.         //==============================================================================================//
  85.         // Function:           MemoryRead(IntPtr OpenedHandle, IntPtr BaseAddress, UInt32 Size,         //
  86.         //                                 ref UInt32 Bytes)                                            //
  87.         //______________________________________________________________________________________________//
  88.         // Description:        Reads the specified amount of bytes from a memory address.               //
  89.         //______________________________________________________________________________________________//
  90.         // Parameter(s):       IntPtr OpenedHandle - The handle of the opened process returned by       //
  91.         //                                           MemoryOpen.                                        //
  92.         //                                                                                              //
  93.         //                     IntPtr BaseAddress - A pointer to the base address in the specified      //
  94.         //                                          process from which to read. Before any data transfer//
  95.         //                                          occurs, the system verifies that all data in the    //
  96.         //                                          base address and memory of the specified size is    //
  97.         //                                          accessible for read access, and if it is not        //
  98.         //                                          accessible the function fails.                      //
  99.         //                                                                                              //
  100.         //                     UInt32 Size - The number of bytes to be read from the specified process. //
  101.         //                                                                                              //
  102.         //                     ref UInt32 Bytes - A pointer to a variable that receives the number of   //
  103.         //                                        bytes transferred into the specified buffer.          //
  104.         //______________________________________________________________________________________________//
  105.         // Return Value(s):     On Success - Returns buffer (containing read bytes)                     //
  106.         //                      On Failure - The return value is 0 (zero)                               //
  107.         //                                     -The function fails if the requested read operation      //
  108.         //                                      crosses into an area of the process that is inaccessible//
  109.         //==============================================================================================//

  110.         [DllImport("kernel32.dll")]
  111.         static extern Int32 ReadProcessMemory(IntPtr OpenedHandle, IntPtr lpBaseAddress, byte[] lpBuffer,
  112.                                                     UInt32 size, out IntPtr lpNumberOfBytesRead);

  113.         static public byte[] MemoryRead(IntPtr OpenedHandle, IntPtr BaseAddress, UInt32 Size, ref IntPtr Bytes)
  114.         {
  115.             byte[] buffer = new byte[Size];
  116.             ReadProcessMemory(OpenedHandle, BaseAddress, buffer, Size, out Bytes);
  117.             return buffer;

  118.         }

  119.         //==============================================================================================//
  120.         // Function:            MemoryClose(IntPtr OpenedHandle)                                        //
  121.         //______________________________________________________________________________________________//
  122.         //Description:          Close an opened handle to a process, returned by MemoryOpen.            //
  123.         //______________________________________________________________________________________________//
  124.         // Parameter(s):        IntPtr OpenedHandle - the handle to a opened process, returned          //
  125.         //                                            by MemoryOpen.                                    //
  126.         //______________________________________________________________________________________________//
  127.         // Return Value(s):     On Success - The return value is nonzero.                               //
  128.         //                      On Failure - The return value is zero                                   //
  129.         //==============================================================================================//
  130.         [DllImport("kernel32.dll")]
  131.         static extern Int32 CloseHandle(IntPtr hObject);

  132.         static int MemoryClose(IntPtr OpenedHandle)
  133.         {
  134.             int rtn;
  135.             rtn = CloseHandle(OpenedHandle);
  136.             return rtn;
  137.         }
复制代码


这个好 够明白


回复

使用道具 举报

13

主题

0

好友

2113

积分

白金长老

Rank: 10

24#
发表于 2009-5-23 11:03 AM |只看该作者
回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

25#
发表于 2009-5-23 05:49 PM |只看该作者
考完试了
要做
maple screenshot catcher
gtaiv screenshot catcher
memory scanner
personal desktop cutomizer
simple 3d maker
很多很多


回复

使用道具 举报

13

主题

0

好友

2113

积分

白金长老

Rank: 10

26#
发表于 2009-5-23 06:11 PM |只看该作者
好了贴上来啦


回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

27#
发表于 2009-5-23 06:17 PM |只看该作者

回复 #26 goodday 的帖子

我eng liao 我post个 DWMAPI.DLL 的 API
Aero Interface的 api
你看了,放在software,很美的
<DLLIMPORT("DWMAPI>DLL">
Public Function DwmExteadArea(blahblahblah.....

if (DWM.insupported == false)
{
}
对了,怎么探测windows version >6?


回复

使用道具 举报

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

28#
发表于 2009-5-29 10:34 AM |只看该作者

回复 #27 goodhermit95 的帖子

会了,try catch end try
我现在去发DWMAPI.DLL


回复

使用道具 举报

4

主题

0

好友

580

积分

青铜长老

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

29#
发表于 2009-6-28 08:27 PM |只看该作者
原帖由 MercyGodlikE 于 2009-1-11 15:54 发表
现在都是VB.net了阿
VB6已经过时了
(纯属个人意见)

VB.netem0010 em0010 em0010


回复

使用道具 举报

14

主题

2

好友

734

积分

青铜长老

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

30#
发表于 2010-1-5 11:20 PM |只看该作者
请问C 的书有吗?浅白一点的,因为我的PROGRAMMING底很差...


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-29 05:10 PM , Processed in 0.092474 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部