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