PDA

View Full Version : سوال: Read\Write Process Memory و آدرس (offset) های متغییر



koruir
چهارشنبه 27 آذر 1387, 16:36 عصر
سلام دوستان. همون طور که میدونید کاربرد این دو API (WriteProcessMemory - ReadProcessMemory) در ساخت Trainer و PWD Dumper هست. لااقل من تا اینجاش بیشتر نمیدونم :D
در اکثر برنامه ها آدرس ها ثابت هست؛ اما در بعضی دیگه نه. مشکل منم با همون هایی هست که آدرسشون عوض میشه.
چه طوری میشه برای این گونه برنامه ها، Trainer یا Dumper نوشت:عصبانی++:؟

illegalyasync
چهارشنبه 27 آذر 1387, 19:17 عصر
بايد دنبال Pattern محدوده اي كه ميخواي Patch كني بگردي . برنامه رو ديباگ كن و از آپكدهاي قسمت مورد نظرت Regex بساز كه بعدا بتوني دنبالشون بگردي . تنها حالتي كه ممكنه اين روش جواب نده اين هستش كه Target ات Polymorphic باشه كه با برنامه هاي معمولي به مشكلي بر نميخوري معمولا ويروسها يا برنامه هاي خيلي خاص يه همچين رفتارهائي ميكنن . براي اينكه اينكارو انجام بدي به يه Disassembler Engine نياز داري كه Target‌رو در زمان اجرا بهش بدي و خروجيش رو با Regex تحليل كني و وقتي آدرسهاي مورد نظرت رو پيدا كردي با توابعي كه خودت گفتي Patch كني

mmta41
یک شنبه 02 فروردین 1388, 12:34 عصر
سلام دوستان. همون طور که میدونید کاربرد این دو API (WriteProcessMemory - ReadProcessMemory) در ساخت Trainer و PWD Dumper هست. لااقل من تا اینجاش بیشتر نمیدونم :D
در اکثر برنامه ها آدرس ها ثابت هست؛ اما در بعضی دیگه نه. مشکل منم با همون هایی هست که آدرسشون عوض میشه.
چه طوری میشه برای این گونه برنامه ها، Trainer یا Dumper نوشت:عصبانی++:؟


سلام دوست عزیز



این برنامه ها از یک تکنولوژی به نام DMA(Dynamic Allocating Memory) استفاده میکنند . که در هر بار اجرا شدن برنامه بلوک متفاوتی از حافظه را به آن اختصاص می دهد.برنامه برای اینکه بتواند خودش آدرس جدید را پیدا کند از Pointer ها استفاده می کند . عملکرد Pointer به اینصورت که Offset بلوک جدید حافظه را در آن Pointer نگهداری می کند.شما فقط کافیست که آدرس Pointer را پیدا کنید که به آدرس بلوک Target دست پیدا کنید.

koruir
پنج شنبه 17 اردیبهشت 1388, 14:43 عصر
سلام دوست عزیز



این برنامه ها از یک تکنولوژی به نام DMA(Dynamic Allocating Memory) استفاده میکنند . که در هر بار اجرا شدن برنامه بلوک متفاوتی از حافظه را به آن اختصاص می دهد.برنامه برای اینکه بتواند خودش آدرس جدید را پیدا کند از Pointer ها استفاده می کند . عملکرد Pointer به اینصورت که Offset بلوک جدید حافظه را در آن Pointer نگهداری می کند.شما فقط کافیست که آدرس Pointer را پیدا کنید که به آدرس بلوک Target دست پیدا کنید.

ممنون که جواب دادین.
1- چطوری میشه آدرس Pointer رو در برنامه بدست آورد؟
2- آیا برای DMA از API خاصی استفاده میشه؟ اگه جواب مثبت هست میشه اون API رو Hook کرد؟ تا دیگه offset ها تغییر نکنند؟
3- شما گفتین "که در هر بار اجرا شدن برنامه" آیا میشه برنامه ای از تکنولوژی DMA به صورتی استفاده کنه که مثلا هر n دقیقه یک بار offsetها عوض بشن؟ یا فقط در هر بار اجرا شدن برنامه میتوان از آن استفاده کرد؟

mmta41
چهارشنبه 30 اردیبهشت 1388, 20:52 عصر
ممنون که جواب دادین.
1- چطوری میشه آدرس Pointer رو در برنامه بدست آورد؟
2- آیا برای DMA از API خاصی استفاده میشه؟ اگه جواب مثبت هست میشه اون API رو Hook کرد؟ تا دیگه offset ها تغییر نکنند؟
3- شما گفتین "که در هر بار اجرا شدن برنامه" آیا میشه برنامه ای از تکنولوژی DMA به صورتی استفاده کنه که مثلا هر n دقیقه یک بار offsetها عوض بشن؟ یا فقط در هر بار اجرا شدن برنامه میتوان از آن استفاده کرد؟


دوست عزیز برای اینکه آدرسPointer را پیدا کنی بهتره از نرم افزار های MemoryEditor استفاده کنی. یکی از این برنامه ها Artmoney است که لینکش را در زیر گذاشتم , یک قست مخصوص Pointer ها دارد. در ضمن حتما Help برنامه را یک نگاه بنداز تا بیشتر متوجه بشی.


اما در مورد سوال دومت , Pointer به اینصورت عمل میکند که آدرس Block مورد نظر را همواره در خود دارد.پس هیچ نیازی به API نداری چون اگه آدرس Block تغییر کند دوباره می تونید از Pointer بازخوانی کنید.من برنامه هایی را دیدم که آدرس در آنها تغییر میکند.اما با این روش دیگه به مشکل برنمی خورید.
این عکس هم عملکرد Pointer را نشان میدهد
http://i42.tinypic.com/2a0dx7t.jpg
بعد از نصب Artmoney می تونید با لینک زیر مستقیم به قسمت Help مربوطه بروید.لطفا به مسیر نصب برنامه دقت کنید:

mk:@MSITStore:C:\Program%20Files\ArtMoney\Help\eng lish.chm::/dma.htm




چون Font فارسی نداشتم دیگه بیشتر از این نمی تونم بنویسم همین هم 30min از وقتم را گرفت:عصبانی++:.همه متن را تو www.parseek.com/keyboard (http://www.parseek.com/keyboard) تایپ کردم. امیدوارموفق بشی:چشمک: .







--------------------------------------------------------------------------------------------------
Download link:

http://www.artmoney.ru/e_download.htm
(http://www.artmoney.ru/e_download.htm)