Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: Truy xuất dữ liệu của 1 địa chỉ con trỏ

  1. #1
    Ngày gia nhập
    03 2009
    Bài viết
    93

    Mặc định Truy xuất dữ liệu của 1 địa chỉ con trỏ

    DWORD PerfectCount;
    BYTE Zero[] = {0x00};
    ReadProcessMemory(GetCurrentProcess(),(LPCVOID)(0x 113DF7C), &PerfectCount,4, NULL);
    WriteMemory(PerfectCount + 0x114,Zero,1);
    //Viết BYTE Zero vào địa chỉ PerfectCount + 0x114 ( 0x114 là offset tìm được và PerfectCount là Address Base )

    Code này là Write vào địa chỉ đó nhưng em không biết cách Read, truy xuất nội dung từ Address ( có + thêm offset 0x114 ) ra 1 txt hoặc di chuyển nó đến 1 địa chỉ khác thì làm thế nào ạ. Các anh chỉ em với. ( hoặc hiển thị nội dung tại địa chỉ đó bằng TextOut )

    ( em có sử dụng copymemory nhưng vẫn k dc )

  2. #2
    Ngày gia nhập
    12 2008
    Nơi ở
    Hà Nội
    Bài viết
    374

    Visual C++ Code:
    1. DWORD dwBaseAddress = 0x113DF7C ;
    2. ReadProcessMemory(handle,(LPCVOID)(dwBaseAddress), &dwBaseAddress,4, NULL);
    3. ReadProcessMemory(handle,(LPCVOID)(dwBaseAddress + 0x114), &dwBaseAddress,4, NULL);
    Sau đoạn trên , [dwBaseAddress + 0x114] nằm ở dwBaseAddress.
    Trên là đọc , còn ghi vào file txt thì bạn có thể sử dụng các hàm API : OpenFile , WriteFile , trêm MFC thì dùng CFile.
    Chứ không nên TextOut, bạn có thể Create 1 Edit control , rồi dùng hàm SetDlgItemText.

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    93

    DWORD PerfectCount;
    int numPer;
    char *FPSTEXT = (char *)0x8C2878;
    ReadProcessMemory(GetCurrentProcess(),(LPCVOID)(0x 113DF7C), &PerfectCount,4, NULL);
    ReadProcessMemory(GetCurrentProcess(),(LPCVOID)(Pe rfectCount + 0x114), &numPer,4, NULL);
    WriteProcessMemory(handle,FPSTEXT,&numPer,sizeof(n umPer),0);


    mình chỉnh lại 1 tí, code này lẫn code trên vẫn không thể hiện giá trị DEC . Bạn giúp mình với nó chỉ đưa ra giá trị UNICODE, giúp mình chuyển nó sang DEC với.

  4. #4
    Ngày gia nhập
    12 2008
    Nơi ở
    Hà Nội
    Bài viết
    374

    Trích dẫn Nguyên bản được gửi bởi hsagduag Xem bài viết
    DWORD PerfectCount;
    int numPer;
    char *FPSTEXT = (char *)0x8C2878;
    ReadProcessMemory(GetCurrentProcess(),(LPCVOID)(0x 113DF7C), &PerfectCount,4, NULL);
    ReadProcessMemory(GetCurrentProcess(),(LPCVOID)(Pe rfectCount + 0x114), &numPer,4, NULL);
    WriteProcessMemory(handle,FPSTEXT,&numPer,sizeof(n umPer),0);


    mình chỉnh lại 1 tí, code này lẫn code trên vẫn không thể hiện giá trị DEC . Bạn giúp mình với nó chỉ đưa ra giá trị UNICODE, giúp mình chuyển nó sang DEC với.
    Visual C++ Code:
    1. DWORD PerfectCount;
    2. DWORD numPer;
    3. ReadProcessMemory(GetCurrentProcess(),(LPCVOID)(0x113DF7C), &PerfectCount,4, NULL);
    4. ReadProcessMemory(GetCurrentProcess(),(LPCVOID)(PerfectCount + 0x114), &numPer,4, NULL);
    5. WriteProcessMemory(handle,(LPCVOID)0x8C2878,&numPer,sizeof(numPer),NULL);

    Thử xem thế nào bạn.
    Câu hỏi của bạn buồn cười quá

  5. #5
    Ngày gia nhập
    03 2009
    Bài viết
    93

    vẫn không được bạn ạ. >.<

  6. #6
    Ngày gia nhập
    12 2008
    Nơi ở
    Hà Nội
    Bài viết
    374

    Mặc định Truy xuất dữ liệu của 1 địa chỉ con trỏ

    Thế ý bạn thế nào ?
    Cái gì "DEC" , cái gì "UNICODE".

  7. #7
    Ngày gia nhập
    03 2009
    Bài viết
    93

    mình muốn convert string sang Decimal

  8. #8
    Ngày gia nhập
    12 2008
    Nơi ở
    Hà Nội
    Bài viết
    374

    Muốn convert string -> int , có thể dùng các hàm này : atoi, _atoi_l, _wtoi, _wtoi_l.
    http://msdn.microsoft.com/en-us/library/yd5xkb5c.aspx

    Còn mình nghĩ bạn đang muốn ghi 1 số DWORD vào 1 ô nhớ mà nó không bị convert sang mã hex :
    Visual C++ Code:
    1. DWORD PerfectCount;
    2. DWORD numPer;
    3. char *chBuffer = new char("9185400"); // 9185400 = 0x8C2878
    4. ReadProcessMemory(GetCurrentProcess(),(LPCVOID)(0x113DF7C), &PerfectCount,4, NULL);
    5. ReadProcessMemory(GetCurrentProcess(),(LPCVOID)(PerfectCount + 0x114), &numPer,4, NULL);
    6. WriteProcessMemory(handle,(LPCVOID)chBuffer ,&numPer,sizeof(numPer),NULL);

    Mình vẫn là newbie nên không có quyền nói bạn , nhưng mình khuyên bạn nên học đặt câu hỏi đi.
    Đã được chỉnh sửa lần cuối bởi luc13aka47 : 29-12-2011 lúc 11:21 AM.

Các đề tài tương tự

  1. Truy xuất .dll 32 bit trên hệ điều hành 64 bit
    Gửi bởi dlover trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 14-04-2012, 12:58 PM
  2. Truy xuất dữ liệu ra .xls và .doc
    Gửi bởi snowaleg_5555 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 03-04-2009, 05:12 PM
  3. truy xuất địa chỉ ô nhớ
    Gửi bởi vicky1986 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 8
    Bài viết cuối: 31-01-2009, 10:22 AM
  4. Truy xuất biến của lớp ?
    Gửi bởi BuithiHa trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 12-04-2008, 07:36 PM
  5. Cách truy xuất đối tượng trong lập trình C
    Gửi bởi rox_rook trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 21-11-2007, 02:30 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn