MessageBox without import

Тема в разделе "WASM.X64", создана пользователем Mikl___, 5 фев 2025.

  1. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    263
    ничё не изменилось
     
    Mikl___ нравится это.
  2. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    106
    Тогда значит _In_opt_ PULONG DllCharacteristics = 1, если опциональный то либо нуль, либо ссылка на 1 должна быть, нужно подробно глянуть что за параметр. Иначе падение невозможно.
    --- Сообщение объединено, 24 фев 2025 в 20:38 ---
    Да, опциональный.

    Код (Text):
    1.     lea    r8,Message
    2.     mov    dword ptr [r8],160014h
    3.     mov    qword ptr [r8].UNICODE_STRING.Buffer,ptr$(aUser32_)
    4.  
    5.     xor    rcx,rcx
    6.     xor    rdx,rdx
    7.     lea    r9,Result
    8.     call    LdrLoadDll_
    LdrLoadDll(NULL, NULL, @UNICODE_STRING, @ULONG)
     

    Вложения:

    • fix2.zip
      Размер файла:
      2,2 КБ
      Просмотров:
      21
    Последнее редактирование: 24 фев 2025 в 20:38
    Mikl___ и Marylin нравится это.
  3. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    263
    ну наконец..
    правда после ок в окне, то опять падает (походу exit надо).

    123.png
     
    Mikl___ и Ahimov нравится это.
  4. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    106
    Marylin,

    Попробовать exit вставить, но не должно оно крэшить с нулевым стеком на чистой системе. Если фаулт не может быть доставлен в юзер, процесс киляет ядро по тихому.
     
    Mikl___ нравится это.
  5. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    263
    ну пробуйте, а у меня нету ни масма, ни времени.
    конец месяца.. тут свой дедлайн горит, и сейчас не до экситов..
    а так да.. ядро должно прибить процесс (мож в стеке чё остаётся).
     
    Mikl___ нравится это.
  6. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.912

    Вложения:

    Последнее редактирование: 25 фев 2025 в 03:11
  7. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    263
    плохая попытка..
    Код (Text):
    1. 0:000>g
    2. (cfc.d5c): Access violation - code c0000005 (first chance)
    3. 00000000`00000000 ??              ???
    4.  
    5. 0:000> r @rip
    6. rip=0000000000000000
     
    Mikl___ нравится это.
  8. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    106
    Mikl___,

    Это ведь уже решили:
    Код (Text):
    1.     lea    r8,Message
    2.     mov    dword ptr [r8],160014h
    3.     movr    qword ptr [r8].UNICODE_STRING.Buffer,aUser32_
    4.     xor    ecx,ecx
    5.     lea    rdx,Result
    6.     mov    r9,rdx
    7.     call    rax;LdrLoadDll_
    8.  
    9. LdrLoadDll(
    10.     _In_opt_ PCWSTR DllPath,
    11.     _In_opt_ PULONG DllCharacteristics,
    12.     _In_ PUNICODE_STRING DllName,
    13.     _Out_ PVOID *DllHandle
    14.     );  
    15.  
    16. rCx    XX00        IN PCWSTR   <-- RND!
    17. rDx    @Result        IN OPT PULONG    <-- NULL!
    18. r8    @Message        IN PUNICODE_STRING
    19. r9    @Result        OUT *PVOID
     
    Mikl___ нравится это.
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.912
    Установил Win7 x64, tut_01k.exe работает нормально и под Win10, то же нормально
    Может быть ALIGN:16 не нравится? или секция .code открытая на чтение/запись/исполнение? Или отсутствие секций .data и импорта, либо с загрузчиком что-то не то?
    00.png
     
  10. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    106
    Mikl___,

    А с обнулённым стеком завершается тихо ?
     
  11. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.912
    Ahimov,
    а я получил адрес RtlExitUserProcess и выхожу штатно
     
  12. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    106
    Mikl___,

    Интересно как могло слетать с ошибкой на 7.
     
  13. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.912
    Ahimov,
    я перечислил возможные причины в #89 и я запускал
    Код (ASM):
    1. mov ecx,1 <---
    2. lea rdx,Result
    3. mov r9,rdx
    4. call rax;LdrLoadDll
    а нужно было xor ecx,ecx
    Размер tut_01k.exe 816 байт, LdrLoadDll, LdrGetProcedureAddressEx и RtlExitUserProcess нахожу по хэшу и распаковываю db "user32.dll",0 → dw "u","s","e","r","3","2",".","d","l","l",0
     
  14. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    106
    Mikl___,

    Я не про это, а про xor rsp,rsp
     
  15. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.912
    Ahimov,
    я понял, но выхожу через RtlExitUserProcess
     
  16. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    263
    не знаю, но у меня RIP=0 на входе и сразу падает:
    Код (Text):
    1. 0:000> g
    2. (1cf0.117c): Access violation - code c0000005 (first chance)
    3. 00000000`00000000 ??              ???
    4.  
    5. 0:000> r
    6. rax=00000000c0000135 rbx=0000000000000076 rcx=0000000000000000
    7. rdx=0000000000400309 rsi=00000000772b9c1e rdi=000000000000070e
    8. rip=0000000000000000 rsp=000000000013fef8 rbp=000000000013ff50
    9. r8=0000000000400317  r9=0000000000000000 r10=0000000000000000
    10. r11=000000000013fe72 r12=00000000772b4358 r13=00000000772b6264
    11. r14=00000000771a0000 r15=0000000000000000
    12. iopl=0         nv up ei pl zr na po nc
    13. cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010246
    14.  
    Может у тебя обновы не установлены или ещё чё..
    Более того, если стек не выровнен на 16-байт границу, у меня падает любой софт (который я сам пишу) при вызове апи, а у тебя как-раз RSP=13fef8. Ну кратность размеров секции вроде отрабатывало раньше у меня норм, хотя у тебя стоят 10:10 байт в пе-хидере:
    Код (Text):
    1. 0:000> !dh image00000000`00400000
    2.  
    3. File Type: EXECUTABLE IMAGE
    4. FILE HEADER VALUES
    5.     8664 machine (X64)
    6.        1 number of sections
    7. 67BD0A50 time date stamp Tue Feb 25 05:09:52 2025
    8.  
    9.        0 file pointer to symbol table
    10.        0 number of symbols
    11.       F0 size of optional header
    12.        3 characteristics
    13.             Relocations stripped
    14.             Executable
    15.  
    16. OPTIONAL HEADER VALUES
    17.      20B magic #
    18.    14.40 linker version
    19.      180 size of code
    20.        0 size of initialized data
    21.        0 size of uninitialized data
    22.      1E0 address of entry point
    23.      1C0 base of code
    24.          ----- new -----
    25. 0000000000400000 image base
    26.       10 section alignment      <------+-------//
    27.       10 file alignment         <------+
    28.        2 subsystem (Windows GUI)
    29.     6.00 operating system version
    30.     0.00 image version
    31.     6.00 subsystem version
    32.      340 size of image
    33.      1C0 size of headers
    34.        0 checksum    <------------- На эту хрень тоже ругается WinDbg
    35. 0000000000100000 size of stack reserve
    36. 0000000000001000 size of stack commit
    37. 0000000000100000 size of heap reserve
    38. 0000000000001000 size of heap commit
    39.     8100  DLL characteristics
    40.             NX compatible
    41.             Terminal server aware
    42.  
    43.        0 [       0] address [size] of Export Directory
    44.        0 [       0] address [size] of Import Directory
    45.        0 [       0] address [size] of Resource Directory
    46.        0 [       0] address [size] of Exception Directory
    47.        0 [       0] address [size] of Security Directory
    48.        0 [       0] address [size] of Base Relocation Directory
    49.        0 [       0] address [size] of Debug Directory
    50.        0 [       0] address [size] of Description Directory
    51.        0 [       0] address [size] of Special Directory
    52.        0 [       0] address [size] of Thread Storage Directory
    53.        0 [       0] address [size] of Load Configuration Directory
    54.        0 [       0] address [size] of Bound Import Directory
    55.        0 [       0] address [size] of Import Address Table Directory
    56.        0 [       0] address [size] of Delay Import Directory
    57.        0 [       0] address [size] of COR20 Header Directory
    58.        0 [       0] address [size] of Reserved Directory
    59.  
    60. SECTION HEADER #1
    61.    .text name
    62.      171 virtual size
    63.      1C0 virtual address
    64.      180 size of raw data
    65.      1C0 file pointer to raw data
    66.        0 file pointer to relocation table
    67.        0 file pointer to line numbers
    68.        0 number of relocations
    69.        0 number of line numbers
    70. 80000020 flags
    71.          Code
    72.          (no align specified)
    73.          Write Only
     
  17. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.912
    Marylin,
    я сам не ожидал, сколько мелочей придется учитывать при запуске крохотной программы, но всё равно всем принявшим участие огромное спасибо! :drinks: Если кто-то хочет дорабатывать все листинги прикладывались... так что welcome! :yes3:
     
    k3rnl, Research, Marylin и 2 другим нравится это.
  18. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    613
    Это FASM?!!
    Может лучше использовать UASM и его подвиды, либо старый добрый, но туповатый и проприетарный MASM? У меня таких проблем нету, я сначала фасм хотел использовать, ну изучить его, но потом посоветовали UASM, и я понял что фасм мне просто не нужен, UASM может всё то же что и фасм.
     
  19. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    263
    это и есть масм..
     
  20. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    106
    Вот я тоже собрал, не трогая пе формат. Зачем принудительно завершать процесс, а не по рет я так и не понял.
     

    Вложения:

    • msg.zip
      Размер файла:
      2,1 КБ
      Просмотров:
      16