В Чем косяк

Тема в разделе "WASM.BEGINNERS", создана пользователем punxer, 17 июн 2010.

Статус темы:
Закрыта.
  1. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Код (Text):
    1. #include <Windows.h>
    2.  
    3. #pragma comment(linker,"/NODEFAULTLIB")
    4. #pragma comment(linker,"/entry:MyWinMain")
    5. #pragma comment(linker,"/subsystem:windows")
    6.  
    7. #include <windows.h>
    8. BYTE    killled;
    9.  
    10. LONG NTAPI VectoredExceptionHandler(PEXCEPTION_POINTERS);
    11.  
    12. int __stdcall MyWinMain(HINSTANCE hInstance,
    13.             HINSTANCE hPrevInstance,
    14.             LPSTR     lpCmdLine,
    15.             int       nCmdShow)
    16. {
    17.     AddVectoredExceptionHandler(true,VectoredExceptionHandler);
    18.    
    19.     __asm
    20.     {
    21.         mov [killed],BYTE PTR [MessageBox]
    22.         mov BYTE PTR [MessageBox],0xE9 
    23.    
    24.     }
    25.     MessageBox(0,"Hello","Hello",MB_OK);
    26.     return true;
    27. }
    28.  
    29.  
    30. LONG NTAPI VectoredExceptionHandler(PEXCEPTION_POINTERS)
    31. {
    32.  
    33.  
    34.     __asm mov BYTE PTR [MessageBox],[killed];
    35.     return EXCEPTION_CONTINUE_EXECUTION;
    36. }
     
  2. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Выполнение не продолжаеся(
     
  3. google

    google New Member

    Публикаций:
    0
    Регистрация:
    10 авг 2007
    Сообщения:
    140
    А оно компилируется?
     
  4. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    нет уже. Как это реализовать? Судя по всему в аасме не силен(
     
  5. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    пытаюсь сам разобраться
     
  6. baldr

    baldr New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2010
    Сообщения:
    327
    punxer,

    byte ptr [MessageBox] — младший байт указателя в IAT на функцию MessageBox[AW]().

    x86 не имеет инструкции mov m8, m8.
     
  7. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    baldrвсе понял. спасибо.
     
  8. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    если не трудно то как правильно
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    лол
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    punxer
    на кой черт тут вообще асм?

    если хочешь сплайсинг то как-то так
    Код (Text):
    1. BYTE oldBytes[5];
    2. PBYTE pFunc = (PBYTE) GetProcAddress (LoadLibrary("user32.dll"), "MessageBoxA");
    3. VirtualProtect (pFunc, 1, PAGE_EXECUTE_READWRITE, ....)
    4. memcpy (oldBytes, pFunc, sizeof(oldBytes));
    5. pFunc[0] = 0xE9;
    6. *(ULONG_PTR*)&pFunc[1] = (ULONG_PTR)Hook - (ULONG_PTR)pFunc + 5;
    ну + само собой диззасм длин еще и все дела..
     
  11. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Great не хочу
     
  12. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    пытаю векторные исключения.
    Код (Text):
    1. #include <Windows.h>
    2.  
    3. #pragma comment(linker,"/NODEFAULTLIB")
    4. #pragma comment(linker,"/entry:MyWinMain")
    5. #pragma comment(linker,"/subsystem:windows")
    6.  
    7. #include <windows.h>
    8. DWORD   killled;
    9.  
    10. LONG NTAPI VectoredExceptionHandler(PEXCEPTION_POINTERS);
    11.  
    12. int __stdcall MyWinMain(HINSTANCE hInstance,
    13.             HINSTANCE hPrevInstance,
    14.             LPSTR     lpCmdLine,
    15.             int       nCmdShow)
    16. {
    17.     AddVectoredExceptionHandler(true,VectoredExceptionHandler);
    18.  
    19.     __asm   mov eax,DWORD PTR [MessageBoxA]
    20.     __asm   mov DWORD PTR [killed],eax
    21.  
    22.     __asm   mov eax ,0x90909090
    23.     __asm   mov DWORD PTR [MessageBoxA],eax
    24.  
    25.    
    26.  
    27.     MessageBox(0,"Hello","Hello",MB_OK);
    28.     return true;
    29. }
    30.  
    31.  
    32. LONG NTAPI VectoredExceptionHandler(PEXCEPTION_POINTERS)
    33. {
    34.  
    35.  
    36.     __asm mov eax ,DWORD PTR [killed]
    37.     __asm mov DWORD PTR [MessageBoxA],eax
    38.     return EXCEPTION_CONTINUE_EXECUTION;
    39. }
    почему не компилится
     
  13. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Greatсо сплайсом все впорядке
     
  14. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    punxer
    Скачайте два мана по инструкциям Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2A и 2B.
    По си доку какую.
     
  15. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    хочу научиться перехватывать с помощью экзепшенов
     
  16. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    ведь не сложно не обсирать а направить)
     
  17. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    точнее исправить)
     
  18. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Clerkс си все впорядке
     
  19. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    punxer
    1) какую ошибку при компилировании пишет?
    2)
    так не пойдет, даже если соберется.
     
  20. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Clerk все вопросы в основном к вам)
     
Статус темы:
Закрыта.