Пакет MASM64

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

  1. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.153
    Еще на русский язык поправку можно отправить.
     
  2. Ahimov

    Ahimov Active Member

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

    Это я ему условие написал, печатать на сенсоре такое себе)
     
  3. Entropy

    Entropy Member

    Публикаций:
    0
    Регистрация:
    23 авг 2020
    Сообщения:
    266
    Research нравится это.
  4. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    594
    Конечно главный вопрос:

    Пробуйте.
     
  5. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    454
    Ahimov, а зачем создавать минимальный pe и добавлять стабы / потенциальные глюки ?
    Может проще выровнить секции и не гнатся за размером ? Направить энергию на что-то другое ?
     
  6. Ahimov

    Ahimov Active Member

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

    Обучить на предельном формате, чтобы мог работать с любым. Так как далее для тестов ему нужно будет разбирать семплы нестандартного формата(оверлеи и пр). После тренировки получается мощный инструмент, быстро и без кнопок понимает :good2:
     
  7. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    454
    Для разработки прикладных программ - это нафиг не нужно.
    Компиляторы и линковщики сами справятся без этого онанизма/долб*ебизма.
     
    Последнее редактирование: 8 мар 2026
  8. Ahimov

    Ahimov Active Member

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

    Прикладуху я не трогаю и на асме ее не кодят :acute:
     
  9. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222
    Ahimov,
    какой минимум интересует х32 или х64?
     
  10. Ahimov

    Ahimov Active Member

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

    Для 32 считали. И семпл если можно, помучаем бота.
     
  11. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222
    Ahimov,
    97 байт являются теоретическим минимумом для длины 32 разрядного PE-файла. По смещению +5Ch от сигнатуры «PE» находится поле Subsystem. Размещение в этом поле нулевого значения или отсутствие этого поля в файле воспринимается системным загрузчиком, как значение IMAGE_SUBSYSTEM_UNKNOWN (=0) и система не станет загружать такой файл. Поэтому по смещению +5Ch от «PE» должно находится ненулевое значение. Так как мы поместим в это поле значение IMAGE_SUBSYSTEM_WINDOWS_GUI=2, то под поле Subsystem достаточно отвести 1 байт. Итого: 4 байта (MZ-заголовок) + 5Ch (размер PE-заголовка до поля «Subsystem») + 1 байт (под собственно поле «Subsystem») = 61h = 97 байт
    Код (ASM):
    1. .686P
    2. .model flat
    3. include windows.inc
    4. includelib user32.lib
    5. includelib kernel32.lib
    6. extern _imp__MessageBoxA@16:dword
    7. extern _imp__WriteFile@20:dword
    8. extern _imp__CreateFileA@28:dword
    9. extern _imp__CloseHandle@4:dword
    10. extern _imp__LoadLibraryA@4:dword
    11. .code
    12. start:  xor ebx,ebx
    13. push MB_ICONINFORMATION OR MB_SYSTEMMODAL
    14. push offset szInfoCap
    15. push offset namefile
    16. push ebx
    17. call _imp__MessageBoxA@16
    18. mov eax,_imp__LoadLibraryA@4
    19. sub eax,offset _LoadLibraryA-buffer+ImageBase+size _LoadLibraryA;400023h
    20. mov _LoadLibraryA,eax
    21. mov eax,_imp__MessageBoxA@16
    22. sub eax,offset _MessageBoxA-buffer+ImageBase+size _MessageBoxA;400035h
    23. mov _MessageBoxA,eax
    24. push ebx    ;NULL  
    25. push FILE_ATTRIBUTE_ARCHIVE
    26. push CREATE_ALWAYS
    27. push ebx
    28. push FILE_SHARE_READ or FILE_SHARE_WRITE
    29. push GENERIC_READ or GENERIC_WRITE
    30. push offset namefile
    31. call _imp__CreateFileA@28
    32. push eax    ;hFile для CloseHandle
    33. push ebx ;lpOverlapped
    34. push offset SizeReadWrite   ;lpNumberOfBytesToWrite
    35. push sizeof_image;a4-buffer ;nNumberOfBytesToWrite=97
    36. push offset buffer  ;lpBuffer
    37. push eax    ;hFile для WriteFile
    38. call _imp__WriteFile@20
    39. call _imp__CloseHandle@4
    40. QUIT: retn
    41. ImageBase equ 400000h
    42. buffer  dd 'ZM','EP'
    43. dw 14Ch ;Machine (Intel 386)
    44. dw 0    ;NumberOfSection
    45. EntryPoint: xor ebx,ebx ; ebx = 0
    46. mov edi,offset namedll-buffer+ImageBase
    47. push edi ;push offset user32
    48. jmp short @f
    49. db 0,0  ;   UNUSED
    50. dw a4-optheader ;SizeOfOptionalHeader
    51. dw 103h ;Characteristics (no relocations, executable, 32 bit)
    52. optheader:
    53. dw 10Bh ;Magic PE32
    54. @@:
    55. db 0E8h ;call LoadLibraryA
    56. _LoadLibraryA dd 0
    57. push ebx ;push 0
    58. push edi ;push offset user32
    59. push edi ;push offset user32
    60. push ebx ;push 0
    61. jmp short @f
    62. db 0,0,0
    63. dd EntryPoint-buffer
    64. @@:
    65. db 0E8h ;call MessageBoxA
    66. _MessageBoxA dd 0
    67. retn
    68. dw 0 ;  UNUSED
    69. dd ImageBase    ;ImageBase
    70. dd 4    ;SectionAligment
    71. dd 4 ;FileAligment
    72. namedll db 'user32',0,0 ;   UNUSED
    73. dd 4 ;MinorSubsystemVersion UNUSED
    74. dd 0    ;Win32VersionValue  UNUSED
    75. dd 68h  ;SizeOfimage
    76. dd sizeof_image;64h ;SizeOfHeader
    77. dd 0    ;CheckSum   UNUSED
    78. db 2    ;Subsystem (Win32 GUI)
    79. a4:
    80. ;---------------------------------------------------------------------------
    81. sizeof_image=$-buffer
    82. szInfoCap db "Creator tiny MessageBox",0
    83. namefile db 'tiny97.exe',0
    84. SizeReadWrite dd 0
    85. end start
     
    GRAFik нравится это.
  12. Ahimov

    Ahimov Active Member

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

    А практически запускаемый файл какого размера и .exe может есть ?
     
  13. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222
    Ahimov,
    то что я сбросил это родитель TinyPeMessageBox. В нем нет секции импорта, родительская программа передает туда адрес функции MessageBox. У каждого этот адрес разный. Запускайте и увидите tiny97.exe Работало под 32-разрядной WindowsXP под WindowsNT не проверял...
     
    Ahimov, GRAFik и Research нравится это.
  14. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222
    А как Вы думаете? :crazy:
     
  15. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    454
    Такое проще на фасме делать.
     
    Последнее редактирование: 8 мар 2026
  16. Ahimov

    Ahimov Active Member

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

    Хотел что бы он дамп разобрал(тк уже обучен), пусть возьмет из исхода.

    Ранее расчет был, к чему и вопрос:
     
  17. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    418
    Mikl___, а для MASM64 такое изобразить сильно сложно и долго? Если да, то не нужно. Может у вас есть, что-то готовое ?
     
  18. Mikl___

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222
    Research,
    а я написал на MASM'e
    00.jpg
     
    Ahimov и Research нравится это.
  19. Mikl___

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

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

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

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222
    Ahimov,
    Только это мой код, я его на Wasm.ru публиковал
     
    Ahimov нравится это.