بنام خدا
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