بنام خدا



Creating a batch file using FASM


ایجاد یک فایل  batch  با استفاده از فلت اسمبلر:



سورس لازم برای نوشتن این نوع فایل بچ  را در اینجا  می توانید مشاهده و مطالعه کنید:


;***;  Format  ;***;
format PE console
entry  _main


;***;  Includes  ;***;
include
'import32.inc'


;***;  Data  ;***;
section
'data' data readable writeable
Path  db
'out.cmd', 0

Cmmd1 db
'<first command>', 0
Cmmd2 db
'<second command>', 0
_endl db
0xD, 0xA, 0

_bwr       dd
0
FileHandle dd
0


;***;  Code  ;***;
section
'code' code readable executable
_main
:

       
; clear file
        push Path
        call
[W32_FileDelete]
       
       
; open file
        push
0
        push
0x80
        push
1
        push
0
        push
0
        push
0x40000000
        push Path
        call
[W32_FileOpen]
        mov 
[FileHandle], eax
       
       
; reset 'bytes written'

        mov dword
[_bwr], 0
       
       
; write first command
        push
0
        push _bwr
        push
15 ; write size
        push Cmmd1
        push
[FileHandle]
        call
[W32_FileWrite]
       
       
; reset 'bytes written'
        mov dword
[_bwr], 0
       
       
; write end of the line
        push
0
        push _bwr
        push
2 ; write size
        push _endl
        push
[FileHandle]
        call
[W32_FileWrite]
       
       
; reset 'bytes written'
        mov dword
[_bwr], 0
       
       
; write second command
        push
0
        push _bwr
        push
16 ; write size
        push Cmmd2
        push
[FileHandle]
        call
[W32_FileWrite]
       
       
; close file
        push
[FileHandle]
        call
[W32_FileClose]
       
       
; close
        .quit
:
        push
0
        call
[CS_Close]



;***;  Import  ;***;
section
'impr' import data readable writeable

library
\

L_msvcrt
, 'msvcrt.dll',\
L_kernel32
, 'kernel32.dll'

import L_msvcrt
,\
CS_System
, 'system',\
CS_Close
,  'exit'

import L_kernel32
,\
W32_FileWrite
,  'WriteFile',\
W32_FileClose
,  'CloseHandle',\
W32_FileOpen
,   'CreateFileA',\
W32_FileDelete
, 'DeleteFileA'   





هشدارفایلهای  بچ  (batch)  می توانند بسیار خطرناک باشند و به  ویندوز  آسیب جدی برسانند . پس  این سورس را ابتدا با دقت مطالعه کنید . اگر از بی خطر بودنش مطمئن شدید  سپس  آنرا  با کمک  Fasm   کامپایل کنید .


من هیچ مسئولیتی در قبال  این  سورس  برعهده  نمی گیرم . شما  آنرا با مسئولیت خودتان  اجرا می کنید .  بنابراین  تمام نکات ایمنی را قبل از  کامپایل این سورس ، رعایت کنید تا به  سیستم تان  آسیب وارد نشود .


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





وحید محمدی - وبلاگ اسمبلر


https://assembler.blog.ir