نمایش نتایج 1 تا 10 از 10

نام تاپیک: تبدیل تابع به زبان ماشین

  1. #1
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452

    Tick تبدیل تابع به زبان ماشین

    سلام دوستان
    به عنوان مثال دستور زیر:
    MessageBox(NULL,"amir,"civil",MB_OK);

    وقتی به زبان ماشین تبدیل بشه به چه صورت در میاد
    ممنون

  2. #2
    بستگی به کامپایلر شما داره. می تونید با یه کامپایل اینو کامپایل کنید و ببینید به چه کدی تبدیل میشه.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  3. #3
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    با چه کامپایلری
    من فقط این قطعه رو لازم دارم نه کل برنامه رو

  4. #4
    کاربر دائمی آواتار ICEMAN
    تاریخ عضویت
    تیر 1383
    محل زندگی
    Hyper-V
    پست
    476
    می نونی به زبان اسمبلی بنویسی و بعد کد compile شده رو تو hex editor باز کنی
    http://www.milw0rm.com/shellcode/1443

    "\x31\xc0\x31\xdb\x31\xc9\x31\xd2\xeb\x37\x59\x88\ x51\x0a\xbb"
    "\x77\x1d\x80\x7c" //***LoadLibraryA(libraryname) IN WinXP sp2***
    "\x51\xff\xd3\xeb\x39\x59\x31\xd2\x88\x51\x0b\x51\ x50\xbb"
    "\x28\xac\x80\x7c" //***GetProcAddress(hmodule,functionname) IN sp2***
    "\xff\xd3\xeb\x39\x59\x31\xd2\x88\x51\x06\x31\xd2\ x52\x51"
    "\x51\x52\xff\xd0\x31\xd2\x50\xb8\xa2\xca\x81\x7c\ xff\xd0\xe8\xc4\xff"
    "\xff\xff\x75\x73\x65\x72\x33\x32\x2e\x64\x6c\x6c\ x4e\xe8\xc2\xff\xff"
    "\xff\x4d\x65\x73\x73\x61\x67\x65\x42\x6f\x78\x41\ x4e\xe8\xc2\xff\xff"
    "\xff\x4f\x6d\x65\x67\x61\x37\x4e";

  5. #5
    کاربر دائمی آواتار saeedIRHA
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    Eclipse
    سن
    38
    پست
    605

    Wink

    این shellcode ی هست که که من در milw0rm ثبت کردم;
    اگر می خوای بگو کد اسمبلیش رو هم بزارم برات اینجا
    و بگم چطور کامپایلش کنی البته همون طور که در milw0rm
    هم گفتم کد اسمبلیش کار خودم نیست , فقط تغییرش دادم

    *نکته :
    این برنامه هم شاید به دردت خورد
    برایه پیدا کردن آدرس توابع در DLL ها نوشتمش با Visual C++‎.NET

    فایل های ضمیمه فایل های ضمیمه

  6. #6
    کاربر دائمی آواتار ICEMAN
    تاریخ عضویت
    تیر 1383
    محل زندگی
    Hyper-V
    پست
    476
    فکر کردم خودم گفتم که این shellcode کار کی هست شرمنده (; ( ولی تو لینک milw0rm ی دادم اطلاعات کاملی هست )
    اگه لطف کنی ،کد اسمبلی ش رو بذاری ممنون میشن ؟

  7. #7
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    ممنون ازهمه
    اگر کد اسمبلی روهم بزارید ممنون میشم و کامپایلر مورد نظر رو هم بگید
    در ضمن ما اگه این تابع رو با سی++ بنویسم و یه فایل اجرایی تبدیل بشه چه جوری با هگز ادیتور اون تابع رو پیدا کنیم
    راستی این برنامه رو برای تابعMessageBoxچک کنید من کردم ولی کار نکرد
    user32.dll
    ممنون

  8. #8
    کاربر دائمی آواتار saeedIRHA
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    Eclipse
    سن
    38
    پست
    605

    Wink


    ;msgbox.asm
    [SECTION .text]

    global _start


    _start:
    ;eax holds return value
    ;ebx will hold function addresses
    ;ecx will hold string pointers
    ;edx will hold NULL


    xor eax,eax
    xor ebx,ebx ;zero out the registers
    xor ecx,ecx
    xor edx,edx

    jmp short GetLibrary
    LibraryReturn:
    pop ecx ;get the library string
    mov [ecx + 10], dl ;insert NULL
    mov ebx, 0x77e7d961 ;LoadLibraryA(libraryname);
    push ecx ;beginning of user32.dll
    call ebx ;eax will hold the module handle

    jmp short FunctionName
    FunctionReturn:

    pop ecx ;get the address of the Function string
    xor edx,edx
    mov [ecx + 11],dl ;insert NULL
    push ecx
    push eax
    mov ebx, 0x77e7b332 ;GetProcAddress(hmodule,functionname);
    call ebx ;eax now holds the address of MessageBoxA

    jmp short Message
    MessageReturn:
    pop ecx ;get the message string
    xor edx,edx
    mov [ecx+3],dl ;insert the NULL

    xor edx,edx

    push edx ;MB_OK
    push ecx ;title
    push ecx ;message
    push edx ;NULL window handle

    call eax ;MessageBoxA(windowhandle,msg,title,type); Address

    ender:
    xor edx,edx
    push eax
    mov eax, 0x77e798fd ;exitprocess(exitcode);
    call eax ;exit cleanly so we don't crash the parent program


    ;the N at the end of each string signifies the location of the NULL
    ;character that needs to be inserted

    GetLibrary:
    call LibraryReturn
    db 'user32.dllN'
    FunctionName
    call FunctionReturn
    db 'MessageBoxAN'
    Message
    call MessageReturn
    db 'HeyN'



    این کد اصلی هست که توسط steve hanna نوشته شده
    اسمش رو search کن مقاله اش رو پیدا میکنی در مورده نحویه کامپایلش هم توضیح داده

    درمورده این برنامه هم باید بگم که کار میکنه
    فقط باید اسم تابع رو درست بزنی و هم case sensitive هست



    وقتی یک بار هم امتحان نکردی اینطوری با قاطعیت نگو کار نمیکنه
    بعدش هم اینو برای استفاده شخصیم نوشتمش

  9. #9
    کاربر دائمی آواتار amir_civil
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    452
    سلام
    ممنون از کد
    وقتی یک بار هم امتحان نکردی اینطوری با قاطعیت نگو کار نمیکنه
    من گفتم در مورد تابع MessageBoxدرست کار نمیکنه اونوقت شما تابع دیگه رو مثال میزنید
    شما باید میگفتید که برای هرتابع باید به صورت زیر بنویسید
    MessageBox==>MessageBoxA
    تا برنامه درست کار کنه

  10. #10
    کاربر دائمی آواتار saeedIRHA
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    Eclipse
    سن
    38
    پست
    605

    Exclamation

    نقل قول نوشته شده توسط amir_civil مشاهده تاپیک
    سلام
    ممنون از کد

    من گفتم در مورد تابع MessageBoxدرست کار نمیکنه اونوقت شما تابع دیگه رو مثال میزنید
    شما باید میگفتید که برای هرتابع باید به صورت زیر بنویسید
    MessageBox==>MessageBoxA
    تا برنامه درست کار کنه
    تابع MessageBox به 2 صورت
    MessageBoxA==>ascii و
    MessageBoxW==>unicode
    هست دیگه فرض بر این هست که کاربر در این حد
    اطلاعات داره با توجه به سئوال مطرح شده

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •