G3n3Rall
یک شنبه 12 مرداد 1393, 09:31 صبح
سلام دوستان
یکی از فانکشن هایی که میخام استفاده کنم تو اسمبلی لینوکس x86 داری چند argv هست
مثل فانکشن chmod()
chmod (__const char *__file, __mode_t __mode)
شماره تابع در لینوکس دبیان 15 هست که میزارم تو eax و
شماره مقدار __const char *__file رو میزارم ebx و
مقدار ecx رو نمیدونم باید چجوری بزارم ! __mode_t چی هست دقیقا و چجوری باید
بهش مقدار بدیم ؟
سورس من :
section .text
global _start
_start:
mov eax,15
mov ebx,path
mov ecx,mod
int 0x80
mov edx,len
mov ecx,msg
mov ebx,1
mov eax,4
int 0x80
mov ebx,0
mov eax,1
int 0x80
section .data
msg db "Hello",0xa
len equ $ - msg
path db "/root/Desktop/xpl/1.txt"
mod db "S_IWUSR|S_IWGRP|S_IWOTH"
برنامه Hello رو چاپ میکنه ، chmod رو اجرا میکنه و exit میشه
ولی بعد از اجرا فقط hello رو چاپ میکنه و exit میشه و فانکشن ، permission فایل رو تغیر نداده
( بنده میخام دسترسی write رو به فایل بدم ) ، کسی هست راهنمایی کنه؟
متشکرم
یکی از فانکشن هایی که میخام استفاده کنم تو اسمبلی لینوکس x86 داری چند argv هست
مثل فانکشن chmod()
chmod (__const char *__file, __mode_t __mode)
شماره تابع در لینوکس دبیان 15 هست که میزارم تو eax و
شماره مقدار __const char *__file رو میزارم ebx و
مقدار ecx رو نمیدونم باید چجوری بزارم ! __mode_t چی هست دقیقا و چجوری باید
بهش مقدار بدیم ؟
سورس من :
section .text
global _start
_start:
mov eax,15
mov ebx,path
mov ecx,mod
int 0x80
mov edx,len
mov ecx,msg
mov ebx,1
mov eax,4
int 0x80
mov ebx,0
mov eax,1
int 0x80
section .data
msg db "Hello",0xa
len equ $ - msg
path db "/root/Desktop/xpl/1.txt"
mod db "S_IWUSR|S_IWGRP|S_IWOTH"
برنامه Hello رو چاپ میکنه ، chmod رو اجرا میکنه و exit میشه
ولی بعد از اجرا فقط hello رو چاپ میکنه و exit میشه و فانکشن ، permission فایل رو تغیر نداده
( بنده میخام دسترسی write رو به فایل بدم ) ، کسی هست راهنمایی کنه؟
متشکرم