امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ReadProcessMemory کمک
نویسنده پیام
sima_6600 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 149
موضوع‌ها: 23
تاریخ عضویت: شهریور ۱۳۸۶

تشکرها : 13
( 25 تشکر در 17 ارسال )
ارسال: #1
Exclamation  ReadProcessMemory کمک
سلام من یک برنامه نوشتم به زبان C++ حالا همون رو با زبان VB6 نوشتم اما خروجی چیزی رو نشون نمیده کمک کنید من باید حتما این رو به زبان VB6 بنویسم.
کد:
#include <iostream.h>
#include <conio.h>
#include <windows.h>
char Str[63];

int main()
{
cout << "Test" << endl << "coded by Sima" << endl;
HWND fenster = NULL;
while(fenster == NULL)
{
fenster = FindWindow(NULL, "Test");
Sleep(100);
}
cout << "Process Found!" << endl;
DWORD prozessid;
GetWindowThreadProcessId(fenster, &prozessid);
HANDLE handleprozess;
handleprozess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, prozessid);
DWORD puffer = NULL;
ReadProcessMemory(handleprozess,(void*)(0x01AB18E4),&str,sizeof(str),&puffer);
cout << "Value: " << str << endl;
CloseHandle(handleprozess);
getch();
}
خوب حالا همین برنامه رو مینویسم به زبان VB6
کد:
dim str as string
phwnd = FindWindow(vbNullString, "Test")
If (phwnd = 0) Then
    MsgBox "Window not found!"
    Exit Sub
End If
GetWindowThreadProcessId phwnd, pid

phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
    MsgBox "Couldn't get a process handle!"
    Exit Sub
End If
BaseAddr = &H01AB18E4
ReadProcessMemory phandle, BaseAddr, str, 1, 0&

Text2.text = str

CloseHandle phandle
این کد رو که اجرا میکنم هیچ خروجی به من نمیده اما کدی که در C++ نوشتم خروجی رو درست میده خروجی من یک متن هست String حالا کمک کنید ببینم مشکل این چیه AngryAngryAngry

شاگرد كوچك
(آخرین ویرایش در این ارسال: ۰۹-شهریور-۱۳۸۹, ۲۰:۵۷:۰۶، توسط sima_6600.)
۰۹-شهریور-۱۳۸۹, ۲۰:۵۶:۰۲
ارسال‌ها
پاسخ
CRazYFULL غایب
مدیر بازنشسته
*****

ارسال‌ها: 792
موضوع‌ها: 27
تاریخ عضویت: تير ۱۳۸۵

تشکرها : 1546
( 2836 تشکر در 593 ارسال )
ارسال: #2
RE: ReadProcessMemory کمک
اندازه مقداری که که قراره متغير برگدونه رو بايد از قبل خالی کنيد
کد:
str = String(256, 0&)

يه نکته ديگه که من کلی سرش الاف شدم اينه که تابع readprocessmemory که از خود VB تو برنامه قرار ميديد امکان داره آرگمنت هاش اشتباه تعيين شده باشه

از تابع زير استفاده کنيد:
کد:
Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
۱۰-شهریور-۱۳۸۹, ۱۶:۲۷:۵۶
ارسال‌ها
پاسخ
تشکر شده توسط : sima_6600, salehjg
sima_6600 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 149
موضوع‌ها: 23
تاریخ عضویت: شهریور ۱۳۸۶

تشکرها : 13
( 25 تشکر در 17 ارسال )
ارسال: #3
RE: ReadProcessMemory کمک
(۱۰-شهریور-۱۳۸۹, ۱۶:۲۷:۵۶)CRazYFULL نوشته است: اندازه مقداری که که قراره متغير برگدونه رو بايد از قبل خالی کنيد
کد:
str = String(256, 0&)

يه نکته ديگه که من کلی سرش الاف شدم اينه که تابع readprocessmemory که از خود VB تو برنامه قرار ميديد امکان داره آرگمنت هاش اشتباه تعيين شده باشه

از تابع زير استفاده کنيد:
کد:
Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
خدایش خیلی گلی اقای مردی با مرامی سروری دیگه چی میتوانم بگم هر چی بگم کمه درست شد دقیقن مشکل از درست تعریف نشدن ارگومان ها بود خدا بگم چه مارشون نکنه.
راستی یک سوال برام پیش امد اگر تو اون ادرس اطلاعات دیگه ای هم باشه اما من نخوام بخونمش چی کار کنمShy
ببخشید سر شما رو درد اوردم با این سوال های پشت سر همShy

شاگرد كوچك
۱۰-شهریور-۱۳۸۹, ۱۸:۲۱:۰۱
ارسال‌ها
پاسخ
CRazYFULL غایب
مدیر بازنشسته
*****

ارسال‌ها: 792
موضوع‌ها: 27
تاریخ عضویت: تير ۱۳۸۵

تشکرها : 1546
( 2836 تشکر در 593 ارسال )
ارسال: #4
RE: ReadProcessMemory کمک
نقل قول: راستی یک سوال برام پیش امد اگر تو اون ادرس اطلاعات دیگه ای هم باشه اما من نخوام بخونمش چی کار کنمShy
ببخشید سر شما رو درد اوردم با این سوال های پشت سر هم

اگه آدرس ثابت باشه و طول مقداری هم که ميخوايد به دست بياريد ثابت باشه اندازه و آدرس دقيق اون رو ميتونيد بگيريد اما اگر غير از اين باشه بالاخره بايد يه سری حروف يا کلمه ثابت قبل يا بعد از مقداری که ميخوايد به دست بياريد پيدا کنيد بعد جدا سازی رو انجام بديد...

انجمن برای پرسش و پاسخ ساخته شده ديگه

۱۰-شهریور-۱۳۸۹, ۱۹:۰۷:۱۰
ارسال‌ها
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS