به نام خدا :



EBP


EBP+0C= MESSAGE=پیام =رویداد

EBP+08= ADDRESS =آدرس

EBP+010= WPARAM = word parameter

EBP+014= LPARAM= long parameter

===========

===========

RosAsm

RosAsmFiles:


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   خریدم  این رفتارهای عجیب رخ داد که کاملا به خود ماوس و کی لاگر سخت افزاری درون اش مربوط می شود و در این میان،  زبان اسمبلی  کاملا  بی تقصیر است  . 


از خرید ماوس های چینی خصوصا  مارک  بایوند جدا خودداری نمایید زیرا دارای کی لاگر سخت افزاری هستند و سیستم تان را بهم می زنند و بسیار خطرناک می باشند . 





+

وحید محمدی . وبلاگ وحیدمی