Не могу дописать win32 infector _help_

Тема в разделе "WASM.ASSEMBLER", создана пользователем asm0day01, 7 янв 2020.

  1. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    128
    нуно чтобы с _первого_ раза запускалось вот.
     
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.955
    об _ентом_ и речь вот. У тебя все траблы именно с путаницей в том, что ты в зараженном файле восстанавливаешь в ep. Можешь просто вынести восстановление в начало, между сбором апей и заражением, тогда будет работать.
     
    Последнее редактирование: 9 янв 2020
  3. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    128
    Как сделать так чтобы процесс запускаемый запускался _еще_один_ раз...
    password
     

    Вложения:

    • 3002.zip
      Размер файла:
      5,9 КБ
      Просмотров:
      411
  4. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.955
    GetModuleFileName -> CreateMutex -> CreateProcess
     
    Rel нравится это.
  5. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    128
    mutex db "mutex",0

    push mutex
    push -1
    push 0
    call [CreateMutexA]
    wtf?
    --- Сообщение объединено, 16 янв 2020 ---
    не работает... в цикл входит а мне нужно чтобы _еще_один_ раз запускалось (
     

    Вложения:

    • 1kk.zip
      Размер файла:
      1,1 КБ
      Просмотров:
      409
  6. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.955
    Код (C):
    1. HANDLE CreateMutexA(
    2.   LPSECURITY_ATTRIBUTES lpMutexAttributes,
    3.   BOOL                  bInitialOwner,
    4.   LPCSTR                lpName
    5. );
    6. bInitialOwner
    7. If this value is TRUE and the caller created the mutex, the calling thread obtains initial ownership of the mutex object. Otherwise, the calling thread does not obtain ownership of the mutex. To determine if the caller created the mutex, see the Return Values section.
    Там не VB'шный буль если что, 0x00000000/0x00000001. И мутех затем и нужен, чтоб его имя было уникальным для уникального файла.
     
  7. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    128
    И что у меня не так?
     
  8. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.955
    У тебя CreateMutexA(0,0xFFFFFFFF,pszMutexName), второй аргумент инвалид.
     
  9. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    128
    0 и 1 тоже не работают )
     
  10. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.955
    Код (ASM):
    1. PUSH 0
    2. PUSH 78657475
    3. PUSH 6D796E61
    4. PUSH ESP                                 ; /Name => OFFSET LOCAL.2
    5. PUSH 0                                   ; |InitialOwner = FALSE
    6. PUSH 0                                   ; |pSecurity = NULL
    7. CALL DWORD PTR DS:[<&kernel32.CreateMute ; \KERNEL32.CreateMutexA
    8. ADD ESP,0C
    А у меня работают
     
  11. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    128
    не работает
     
  12. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    128
    как сделать чтобы мьютекс работал?
    --- Сообщение объединено, 18 янв 2020 ---
    таки работает :)
     

    Вложения:

    • 231.zip
      Размер файла:
      1,4 КБ
      Просмотров:
      422
  13. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.955
    Я б на твоем месте сначала на кошках потренировался, прежде чем этим заниматься. Поезд файл-вирусов давно ушел, виляя задом, ты на него все равно уже не опоздаешь. А представление о том, какие апи и зачем нужны, еще может пригодиться.
     
    TrashGen, Mikl___ и Rel нравится это.
  14. asm0day01

    asm0day01 Member

    Публикаций:
    0
    Регистрация:
    7 янв 2020
    Сообщения:
    128
    как сделать чтобы запускалось _один_ раз а не в цикл входить "1" ?
     

    Вложения:

    • 0a11.zip
      Размер файла:
      1,4 КБ
      Просмотров:
      427
  15. Bedolaga

    Bedolaga Member

    Публикаций:
    0
    Регистрация:
    10 июл 2019
    Сообщения:
    131
    Передумал, по ходу...
     
  16. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    asm0day01,

    Код (Text):
    1. szFile dd ?
    2.  
    3. entry $
    4.  
    5. start:
    - переменная размером 32 бита определена перед EP.

    Код (Text):
    1. push 256
    2. push szFile
    3. push 0
    4. call [GetModuleFileNameA]
    Из за того что твой стиль написания полное дерьмо и не читаем ты допустил грубейшую ошибку. Указав вместо содержимой переменной её смещение, не явно(не задав это в инструкции). Поэтому со смещения szFile и далее код затирается, так как используется как буфер для апи. В зависимости от настроек системы и опций сборки это либо перепишет код, либо нарушит защиту и процесс отвалится(что так и будет, так по дефолту защита записи в исполняемый сегмент(NX) включена).
    --- Сообщение объединено, 23 янв 2020 ---
    asm0day01,

    > push szFile

    НИКОГДА не надейся на компилер, ВСЕГДА указывай смещение или разыменование явно(offset или [VAR]). Иначе так и будешь ошибаться.
     
  17. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.955
    В фасме нет директивы offset. Имя метки в нем всегда одинаково обрабатывается.
     
  18. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    f13nd,

    Вот именно поэтому наверно на нём ничего норм не пишут. Кроме автоматики конечно, типо pb. Не явное описание переменной это уязвимость.
     
  19. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.955
    Напротив, это бесполезный рудимент. 'szName' всегда оффсет, '[szName]' всегда адресация, явней некуда.
     
  20. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    f13nd,

    В масме иначе, нужно задать смещение. А в общем ему нужно было разместить данные в разных секциях, есчо прочитать немного про то, что вызывает(апи). szFile обнулённый указатель, не важно как и какой компилер это обработает. Если разыменование, то всё равно будет #AV.