vahidmy

وبلاگ شخصی وحید محمدی

vahidmy

وبلاگ شخصی وحید محمدی

وحیدمی

وبلاگ شخصی وحید محمدی . یک تایپیست که عاشق علم و تجربه است.


آدرس وبلاگ وحیدمی :

Home Page


https://vahidmy.blog.ir

+


Archive

آرشیو و بایگانی وبلاگ وحیدمی

https://vahidmy.blog.ir/archive

+


نقشه وبلاگ وحیدمی:

Sitemap

https://vahidmy.blog.ir/sitemap.xml

+

خوراکخوان وبلاگ وحیدمی

Feed

RSS

https://vahidmy.blog.ir/rss

+

آدرس مورد استفاده خزنده ها روباتها و موتورهای جستجوگر

Robot

https://vahidmy.blog.ir/robots.txt


+

مشخصات وبلاگ وحیدمی:


ساعات انتشار پست جدید وبلاگ :

بیست و چهار ساعته

وضعیت انتشار پست : نامنظم . در طول شبانه روز و در صورت صلاحدید ؛ پست جدید منتشر می کنم.


نام مدیر : وحید محمدی

گونه : وبلاگ شخصی با آدرس اختصاصی و محتوای عمومی

ژانر : تمام ژانرها

کاربرد : همه منظوره

هدف وبلاگ : به اشتراک گذاشتن دانش و تجربه با مردم و پرداخت زکات علم

مقصد مدیر وبلاگ : کسب رضای خداوند .

جنس وبلاگ : وبلاگ شخصی

تاریخ تاسیس : تیر 1398 خورشیدی



موضوعات وبلاگ : تمام علوم و فنون و مسائل مختلف در تمام زمینه


کپی برداری از مطالب وبلاگ وحیدمی به شرط لینک دادن به آدرس اصلی وبلاگ با دامنه vahidmy.blog.ir ، بلامانع و آزاد است . با خیال راحت ، کپی برداری نمایید . هیچگونه کپی رایت و انحصار برای وبلاگ وحیدمی ، وجود ندارد .

بروزرسانی:

وبلاگ وحیدمی منحصرا توسط سایت بلاگ دات آی آر به آدرس blog.ir میزبانی می شود . بنابراین بجز دامنه vahidmy.blog.ir سایر دامنه ها جعلی و فیک و خطرناک هستند .
برای مشاهده نکات جدید و ترفندهای امنیتی لطفا به آدرس زیر مراجعه فرمایید:

https://vahidmy.blog.ir/post/1



آدرس وبلاگهای تخصصی :

https://spasm.blog.ir

https://fasmy.blog.ir

https://binasm.blog.ir

طبقه بندی موضوعی
مطالب پربحث‌تر
  • ۰۱/۰۴/۱۱
    adc
نویسندگان
پیوندها

Quick start

چهارشنبه, ۱۵ تیر ۱۴۰۱، ۰۲:۵۷ ق.ظ





Quick start


شروع فوری


Quick start for experienced programmers who feel too lazy to read the full documentation.


شروع فوری برای برنامه نویسان ورزیده و حرفه ای که احساس می کنند  برای خواندن تمام مستندات ، خیلی تنبل هستند


( برنامه نویسان حرفه ای که خسته و بی حوصله هستند و نمی توانند مستندات طولانی را بخوانند یا وقت کافی ندارند که اینکار را انجام دهند . وحیدمی) 



Simple installation: Create a Directory.



نصب ساده : یک دایرکتوری ( فولدر) بسازید . 


 Unzip RosAsm.



فایل RosAsmxxx.zip را اکسترکت کنید . 


( حالا یا با کمک خود ویندوز یا با کمک ابزارهای فشرده سازی معروف مثل وین زیپ  و  وین رار  و ... !  .  حرف x به معنای شماره ی نسخه ی روسسم می باشد . حالا هر نسخه ای که باشد فرقی نمی کند . وحیدمی ) 



 Unzip into this new Directory:  'Structures.zip' and 'Equates.zip'. At least 'Equates.zip' must be there.


حالا این فایلها یعنی Structures.zip و Equates.zip را به درون این فولدر جدید که ساخته اید ، اکسترکت نمایید . دستکم باید فایل Equates.zip آنجا قرار گرفته باشد.  


(فایل Equates.zip شامل تمام ثابت های سیستم عامل ویندوز می باشد که در مقابل نام هر ثابت ، یک کد زبان ماشین دیده می شود . بدون این فایل ، اسمبلر روسسم هیچ کاری انجام نمی دهد . ضمنا نباید محتویات این فایل را دستکاری کنید .  فایل Structures.zip  شامل تمام ساختارهای ویندوز می باشد .  با کمک این ساختارها می توانید خیلی راحت نرم افزارهای بزرگ و تخصصی  و حرفه ای را بسازید .  وحیدمی ) 



 The other External Files (Help Files) may be anywhere and you may later organize them through the [Configuration] Tab. 


سایر فایلهای خارجی ( فایلهای راهنما و مستندات و خودآموزها ) می توانند هرجایی قرار گیرند و شما می توانید بعدا آنها را از طریق تب Configuration  سازماندهی نمایید . 



For details about the Win32 Data Directory, see Include_Files


برای مشاهده ی جزئیات درباره ی  دایرکتوری داده ی ویندوز 32 بیتی ، بخش  Include_Files  از فایل  B_U_Asm.exe را ببینید . 

       

Make a copy of RosAsm.


یک کپی از روسسم بسازید . 




 Run RosAsm.


روسسم را اجرا کنید . 


 Load the copy. 


کپی روسسم را درون خود روسسم بارگیری نمایید ( باز کنید )  . 



Try to get some idea of the size of the beast. 


سعی کنید کم و بیش ایده ای از ابعاد جانور را بدست آورید . 


( یعنی سعی کنید در مورد حجم روسسم یک ایده را بکار گیرید یا در نظر بگیرید . وحیدمی) 



Click on [Compile]  and see how long it takes to turn RosAsm source into a new PE with all its components...

 

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


 

      

Play with the IDE features to take a hand. 


با ویژگیهای IDE  روسسم ، بعنوان دستگرمی  بازی کنید . 



Try to 'Right Click' on various symbols and see what it does.

سعی کنید " راست کلیک کنید " روی نمادهای مختلف و ببینید هرکدام چه کاری انجام می دهد . 





 Right click again on a blank area.

مجددا روی یک ناحیه ی خالی از متن ، راست کلیک نمایید . 



 Try 'Double Click' too.


همچنین سعی کنید دابل کلیک نمایید . 


       

Load 'Base.exe', write a faulty statement and [compile].


فایل Base.exe را بارگیری کنید  ، یک دستور معیوب بنویسید و نتیجه را کامپایل کنید .   



 Write a faulty instruction (or some 'Int 3') and [Run].

یک دستور معیوب ( کد اشتباه )  یا ( تعدادی دستور int 3 ) را بنویسید و روی منوی Run کلیک کنید  . 



 [Run] includes a Debugger.


منوی Run شامل یک دیباگر ( اشکالزدا - رفع عیب ) می شود . 



Stepping possible after 'Int 3'. 


تا جای ممکن بعد از دستور int 3  گام بردارید 


( در شرایط دیباگ یعنی در شرایطی که پنجره ی دیباگر را می بینید مراحل دیباگ را با فشردن کلید F7   بصورت گام به گام  اجرا کنید . وحیدمی) . 




Do not step inside an Win32 API call.

به درون دستورات فراخوانی توابع سیستم عامل ویندوز ، گام برندارید . 


( یعنی هنگامیکه به دستور CALL  رسیدید و دیدید که بعد از این دستور ، اسامی و پارامترهای یکی از توابع ویندوز نوشته شده است روی این دستور ، عملیات دیباگ را انجام ندهید . وحیدمی ) 



For writing some source, you can  use 'Base3.exe' source for a start. 


برای نوشتن مقداری کد ، شما می توانید بعنوان یک شروع ، سورس کد فایل Base3.exe  را بکار ببرید . 



>>>>> Ascii sources are inside the PE's .exe file . <<<<<


سورسهای اسکی نرم افزارها ( کد منبع )  در درون فایلهای اجرایی با پسوند exe  قرار دارند . 




Quick description of syntax:


شرح سریع سینتاکس اسمبلر روسسم :


[ Hexa_Dword_Value: D$ 0FFFFFFFF 

 Decimal_Word_Value: W$ 123 

 Binary_Byte_Value: B$ 00101 ]

;this is 3 data values.

 

این شامل سه مقدار(نوع)  داده می شود ( بایت - ورد - دی ورد ) 


[push | push #1 | #+1]

[call | push #L>2 | call #1]

; this is 2 macros to be used that way, for example:


این ، دو ماکرو برای بکارگیری یک روش می باشد. برای مثال :

       



call  'MYDLL.MyFunction'  para1, para2 


... it becomes:


آن بدین شکل زیبنده تر می باشد:


push para2 | push para1 | call 'MYDLL.MyFunction'



[TRUE 1  FALSE 0] ; these are 2 user defined equates.


اینجا دو ثابت تعریف شده توسط کاربر ، وجود دارد . 


mov  eax  &TRUE ; &TRUE is a Win32 integrated Equates (no declaration).


TRUE& یک معادل ( ثابت ) سیستم عامل ویندوز می باشد ( بدون تعریف . نیاز به تعریف و مقداردهی ندارد ) 





RosAsm syntax differs from older Assemblers on this point:


سینتاکس ( نحو - گرامر)  اسمبلر روسسم در این نقطه ، با اسمبلرهای قدیمی تر ، متفاوت است :


mov  eax  D$Hexa_Dword_Value

; = mov eax,  Dword ptr  [Hexa_Dword_Value]


mov  eax  Hexa_Dword_Value

; = mov eax,  ADDR  Hexa_Dword_Value


(All user defined symbols -out of Equates/Macros- are addresses, never values, just like in NASM).


تمام نمادهایی که توسط کاربر تعریف می شوند ، - به غیر از ثابتها / ماکروها -  شامل آدرس می باشند نه مقدار ، درست مانند مورد مشابه در نسم ) . 

~~~~~~~