Quick start  ...



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



Simple installation: Create a Directory. Unzip RosAsm. Unzip into this new Directory:  'Structures.zip' and 'Equates.zip'. At least 'Equates.zip' must be there. The other External Files (Help Files) may be anywhere and you may later organize them through the [Configuration] Tab. For details about the Win32 Data Directory, see Include_Files


       

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...

 

      

Play with the IDE features to take a hand. 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]. Write a faulty instruction (or some 'Int 3') and [Run]. [Run] includes a Debugger. Stepping possible after 'Int 3'. Do not step inside an Win32 API call.



(مترجم:

خط آخر که می گوید : در درون فراخوانی توابع API وین32 گام برندارید ، فقط محض احتیاط است زیرا من خودم بدون ترس ، با فشردن مرتب کلید F7 سعی می کردم ببینم که داخل هرکدام از توابع API ویندوز ، چه دستوراتی نهفته است که دیدم در نوار عنوان بالای پنجره دیباگر با هر بار فشردن کلید F7 شاهد ظهور یکسری دستورات زبان اسمبلی هستم که این دستورات زبان اسمبلی ، همگی در فایل NTDLL.DLL یعنی در فایل اصلی کرنل سیستم عامل ویندوز حضور داشتند !! 

بله من تا سطح صفر ( رینگ صفر ) هم پیش رفتم و هیچ اتفاق بدی رخ نداد ! 

دیباگر روسسم عملا باعث می شود که شما دقیقا متوجه شوید که هرکدام از توابع ویندوز از چه دستورات زبان اسمبلی تشکیل شده اند  و چگونه با کرنل ویندوز در ارتباط می باشند . لذا  به توصیه ی جناب رنه تورنویس گوش ندهید و بدون ترس ، سعی کنید توابع ویندوز را  دیباگ نمایید ) 


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



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



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).




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).


~~~~~~~