FASM own PE header

Тема в разделе "WASM.SOURCES & 2LZ", создана пользователем inc, 19 май 2023.

  1. inc

    inc New Member

    Публикаций:
    0
    Регистрация:
    19 май 2023
    Сообщения:
    1
    Для тех, кто хочет контроллировать каждый байт своей программы.
    Собственно прошу заинтересованных кто как может написать макросы под экспорт/импорт/ресурсы и тд.
    В конце должно получиться мощное дополнение к fasm'у.
     

    Вложения:

  2. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    860
  3. MaKsIm

    MaKsIm Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    66
    Добавлю ещё кое-что на фасме, чтобы работать с PE файлами

    Распаковать в директорию с fasm.exe.
    Использовать: export.cmd C:\Windows\System32\winmm.dll

    Это взято отсюда: https://board.flatassembler.net/topic.php?t=21964

    Позволяет создавать подключаемые файлы статического импорта функций из динамических библиотек
     

    Вложения:

    • export.zip
      Размер файла:
      3,2 КБ
      Просмотров:
      121
  4. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    335
    как насчет pe64.asm? :)
     
  5. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    107
    Есть такой-же софт, только с гуй-интерфейсом. Понимает как х32, так и х64 либы.
    В меню файл указываешь на dll, после чего в меню "сохранить", и задав расширение inc, кидаешь в папку "Fasm\Include\API". Теперь в секции импорта достаточно натравить на этот инклуд, и компиль сам вытащит из него используемые функции.

    Код (ASM):
    1. section '.idata' import data readable
    2. library  msvcrt,'msvcrt.dll',kernel32,'kernel32.dll'
    3. include  'api\msvcrt.inc'
    4. include  'api\kernel32.inc'
    5.  
     

    Вложения:

  6. MaKsIm

    MaKsIm Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    66
    И смысл. Так сложно на cmd файл перетащить нужный dll файл в explorer? Или можно добавить исполнение этого cmd в меню у dll файлов через RegEdit или reg-файл
     
  7. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    107
    ну конечно, лучше в реестре ковыряться, чем использовать готовый гуй.
    во-вторых, если dll лежит не в папке win, а в пути кириллица с пробелами, то ваш cmd падает.
    а вообще, юзайте что вам удобно - это просто выбор.
     
    Mikl___ нравится это.
  8. MaKsIm

    MaKsIm Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    66
    Вот и я о том же. Используйте готовый гуй explorer. Да и этот cmd файл добавлен как пример по данной теме. Если вы его откроете и почитаете, то это как раз исходник на fasm, который работает с PE/PE64
     
  9. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.954
    Это вообще без специализированных прог делается с помощью любого парсера PE-формата и пары манипуляций с текстом.
     
  10. MaKsIm

    MaKsIm Member

    Публикаций:
    0
    Регистрация:
    11 фев 2008
    Сообщения:
    66
    Кажется вы потеряли суть разговора. В этой теме вкладывали исходники на fasm, которые демонстрируют работу с PE форматом. Автор темы показал как он собирает вручную свой собственный PE файл. Я же добавил исходник, который разбирает секцию экспорта у файлов PE/PE64. Marylin же выложил какую-то левую программу, которая делает тоже самое.
    f13nd
    , тогда приведите пример того, как вы выполняете эту работу. Или добавьте исходник программы, которая работает с форматом исполняемых файлов. Это будет полезнее для посетителей форума.
     
  11. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.954
    Лол, у вас тут спор возник какой жопочес, парсящий экспорт, полезней. Это в треде про формирование заголовка PE-файла вручную. Могу например выложить исходник макроса export фасма, который "выполняет эту работу", надо?