به نام خدا :
EBP
EBP+0C= MESSAGE=پیام =رویداد
EBP+08= ADDRESS =آدرس
EBP+010= WPARAM = word parameter
EBP+014= LPARAM= long parameter
===========
===========
Clip.txt:
; Proc Macros and Equates. Internal storages are:
;
; &1 <<< Size of Argument(s) (for ending Ret n, in EndP). Set by Argument(s)
; &2 <<< Size of Local (for Stack Management). Set by Local
; &3 <<< What to pop before ret. Set by Uses.
[Proc | &1=0 | &2=0 | &3= | #1 | push ebp | mov ebp esp]
[ExitP | jmp P9>>]
[Arguments | {#1 Arg#x} | #+1 | &1=SizeOf#x]
[Argument | {#1 Arg#x} | #+1 | &1=SizeOf#x]
[Local | {#1 Local#x} | #+1 | sub esp SizeOf#x | &2=SizeOf#x]
[StrucPtrs | {#3 ebp+#2+#F} | #+2]
[Structure | {#1 ebp-&2-4} | sub esp #2+4 | mov D$#1 esp | StrucPtrs 0-&2-#2-4 #L>3]
[Uses | push #1>L | &3=pop #L>1]
[EndP | P9: | &3 | mov esp ebp | pop ebp | ret &1]
For pointing to transmitted parameters (upper "Arg#x" fall here):
[Arg1 ebp+8 Arg2 ebp+12 Arg3 ebp+16 Arg4 ebp+20 Arg5 ebp+24
Arg6 ebp+28 Arg7 ebp+32 Arg8 ebp+36 Arg9 ebp+40 Arg10 ebp+44]
; For pointing Local Stack declared data (upper "Local#x" fall here):
[Local1 ebp-4 Local2 ebp-8 Local3 ebp-12 Local4 ebp-16 Local5 ebp-20
Local6 ebp-24 Local7 ebp-28 Local8 ebp-32 Local9 ebp-36 Local10 ebp-40]
بروزرسانی:
رمزگشایی بخشی از دیس اسمبلی ویندوز (EBP) با کمک ماکروهای اسمبلر RosAsm :
برای رمزگشایی از دیس اسمبلی نرم افزارهای ویندوز ، از فایل Clip.txt موجود در فولدر RosAsmFiles استفاده نمایید . فولدر RosAsmFiles اصلی ترین و مهمترین فولدر در اسمبلر RosAsm می باشد و تمام فایلها باید منحصرا در همین فولدر قرار گیرند . البته بجز فایل اصلی RosAsm (یعنی بجز فایل RosAsmxx.exe )
در این فولدر ، تعدادی فایل برای سیستم عامل لینوکس نیز وجود دارد که در اینها ، تعدادی از ساختارها و ثابت های سیستم عامل لینوکس قید شده اند .
بنابراین شاید به درد کاربران لینوکس نیز بخورد .
البته من سعی می کنم از برنامه ی قدرتمند C32asm نیز برای رمزگشایی از دیس اسمبلی نرم افزارهای ویندوز ، کمک بگیرم .
برای جلوگیری از طولانی شدن این پست ، سعی می کنم بجای تایپ مراحل رمزگشایی ، یک فایل متنی آموزشی را آپلود می نمایم تا بتوانم بدون هیچ مشکلی ، این فرایند را اجرایی نمایم .
این فایل با نام Clip.txt عملا تمام ماکروهای استاندارد و پیشفرض RosAsm را به شما نشان می دهد که با مطالعه ی این ماکروها می توانید به رمزگشایی از بخشی از دیس اسمبلی ویندوز بپردازید .
بروزرسانی:
لینک دانلود پکیج کامل اسمبلر RosAsm در پست RosAsmFull از وبلاگهای وحیدمی و وحیدمو قرار گرفت .
این فایل بیش از 160 مگابایت حجم دارد .
کافیست به پست زیر مراجعه نمایید تا بتوانید این پکیج کامل را دانلود نمایید:
https://vahidmy.blog.ir/post/RosAsmFull
در پست بالا روی عبارت RosAsmFull کلیک نمایید تا به صفحه ی دانلود این فایل در پیکوفایل ، وارد شوید .
البته آدرس کامل صفحه ی دانلود نیز ، در وسط پست قید شده است .
+
+
+
برای رمزگشایی از بخش کوچکی از دیس اسمبلی ویندوز می توانید از فایل Clip.txt استفاده نمایید .
دانلود فایل Clip.txt برای رمزگشایی از دیس اسمبلی ویندوز:
https://bayanbox.ir/download/7462500778285448477/Clip.txt
اگر به دلیل باگ های فراوان سیستم وبلاگدهی بیان خصوصا صندوق (فضای اختصاصی) نتوانستید این فایل را دانلود کنید ، خیلی راحت می توانید با مراجعه به این فایل در فولدر RosAsmFiles واقع در پکیج اسمبلر RosAsm به این فایل دست یابید .
با مطالعه ی محتوای این فایل ، می توانید خودتان شخصا اقدام به رمزگشایی بخش کوچکی از دیس اسمبلی ویندوز نمایید .
کافیست روی ماکروها ( کلمات شبیه به دستورات زبان سطح بالا ) راست کلیک نمایید تا به محل ماکروی مربوطه هدایت شوید . بعد در آنجا می توانید متوجه شوید که مثلا Ebp+0C دقیقا با کدام ماکرو مطابقت دارد .
درواقع باید در بغل کلمات زیر در برنامه های RosAsm راست کلیک کنید تا به بخش ماکروهای برنامه ها هدایت شوید:
Proc
if
Message
Arguments
Adressee
wParam
lParam
EndP
.....
در آنجا شما متوجه می شوید که هرکدام از این ماکروها با کدام یک از آرگومانها مطابقت دارند و هر آرگومان با کدام ترکیب EBP مطابقت دارد .
آرگومانها یعنی چیزهایی مثل اینها :
Arg1
Arg2
Arg3
.......
بهرحال سعی کنید خودتان نیز یکسری چیزها را کشف کنید و خودتان را به چالش بکشانید . اینطوری بهتر یاد می گیرید .
من بجز معرفی کردن برخی چیزها کار دیگری نمی توانم انجام دهم . من فقط مسیر را به شما نشان می دهم . اما طی کردن مسیر با خودتان است .
باید مستندات را بخوانید و ترجمه کنید و آزمون و خطا نمایید تا تجربیات جالبی کسب کنید .
تا زمانیکه فایل راهنمای اصلی اسمبلر RosAsm را مطالعه و ترجمه نکنید هیچکاری نمی توانید انجام دهید . حتما باید فایل B_U_Asm.exe را مطالعه و ترجمه نمایید تا بر این اسمبلر مسلط شوید .
بدون این فایل یعنی فایل B_U_Asm.exe شما هیچکاری در اسمبلر RosAsm نمی توانید انجام دهید . پس این فایل را ترجمه کرده و مطابق با ترجمه ، رفتار کنید .
ولی اینکار کافی نیست و باید پس از تسلط کامل بر این اسمبلر ، اقدام به تفکر و آزمون و خطا نمایید .
باید از مغز و ذهن خودتان کار بکشید و تفکر کنید و سعی کنید رابطه ها را کشف کنید .
من عمر ابدی ندارم که همه چیز را به شما بگویم چون دنیای اسمبلی و مهندسی معکوس و بطور کلی، برنامه نویسی سیستمی ، یک دنیای بسیار پهناور و گسترده و پیچیده است و میلیاردها نکته ی ریز و مخفی دارد که من وقت ندارم همه ی انها را برای شما رمزگشایی نمایم . پس خودتان نیز قدری تلاش کنید و سختیهای اینکار را به جان بخرید .
اینطوری خیلی سریعتر و بهتر ، مطالب را یاد می گیرید .
+
+
+
+
به دلیل باگ های فراوان سیستم وبلاگدهی بلاگ شرکت بیان خصوصا در بخش آپلود سنتر ، به احتمال زیاد شاید مجبور شوم برای آپلود فایلها به سایر سیستمها رجوع نمایم و فایلها را در آن سیستم ها آپلود نمایم .
علی الحساب ، فایلها را از طریق پیکوفایل (بلاگ اسکای ) آپلود می نمایم . زیرا صندوق بیان بکلی بهم ریخته و پیامهای خطای فراوان صادر می کند و مانع از آپلود فایل می شود . متاسفانه شرکت بیان هرگز حاضر نیست باگ ها و ایرادات سرویس وبلاگدهی اش را برطرف نماید .
+
+
+
+
نکته ی مهم :
تقریبا 99 درصد پروژه های زبان اسمبلی ، کاملا بی خطر و سالم هستند و عملا رفتارهای عجیب ماوس ، هیچ ربطی به زبان اسمبلی ندارد بلکه به وجود یک کی لاگر سخت افزاری در خود ماوس ربط دارد .
برای رفع این مشکل یا باید ماوس را بطور کامل تعویض کرد و یک ماوس معتبر مثل جینیوس را بکار برد یا اینکه کی لاگر سخت افزاری را از درون ماوس بیرون کشید .
این را از روی تجربه می گویم زیرا تمام پروژه های اسمبلی را که قبلا با ماوس قبلی ام ( جینیوس ) اجرا کردم هرگز باعث بروز رفتارهای عجیب ماوس نشد و همه چیز اوکی و روبه راه بود .
از وقتیکه یک ماوس بایوند beyond خریدم این رفتارهای عجیب رخ داد که کاملا به خود ماوس و کی لاگر سخت افزاری درون اش مربوط می شود و در این میان، زبان اسمبلی کاملا بی تقصیر است .
از خرید ماوس های چینی خصوصا مارک بایوند جدا خودداری نمایید زیرا دارای کی لاگر سخت افزاری هستند و سیستم تان را بهم می زنند و بسیار خطرناک می باشند .
+
وحید محمدی . وبلاگ وحیدمی