Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Установка прав на запись в секцию во время выполнения

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Прочее] >> Установка прав на запись в секцию во время выполнения
Имя
Сообщение << Старые топики   Новые топики >>
Установка прав на запись в секцию во время выполнения - 2009-10-02 11:37:21.613333   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
Как установить права на запись в секцию (вероятно, используя VirtualProtect), в случае, если:
1.) Импорт в отдельной секции, там, естественно, есть kernel32.dll.
2.) Импорта вообще нет.

Как это сделать, не используя SEH и поиск kernel32 в АП, чтобы не увеличивать размер кода?
Post #: 1
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 17:43:35.660000   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
Так, постараюсь нормально написать.
1.) Мне надо установить разрешение на запись для области памяти, в которую спроецирована секция.
Код выполняется в этой секции.
Секция в характеристиках не имеет разрешения на запись.
Мне надо записывать в эту область памяти. Для этого надо установить разрешение на запись.
Я предполагаю, что это возможно сделать функцией VirtualProtect.
Все параметры функции известны.
Неизвестен адрес функции.

2.) Размер кода ограничен. В принципе, возможно использовать код поиска kernel32, с которым я
ещё не разбирался. Но код достаточно объёмный. Он использует SEH, поиск по имени и т.д.

3.) Есть две ситуации.
В первой ситуации, таблицы импорта нет вообще.
Во второй ситуации таблица импорта имеется в отдельной секции.

Больше всего интересует второй вариант.

Вопросы:
1.) Как получить адрес VirtualProtect максимально простым и компактным способом?
2.) Есть ли варианты, помимо VirtualProtect?
Post #: 2
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 17:45:32.176666   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
Ищи базу кернеля, дальше парси таблицу экспорта, ищи там VirtualProtect, в чем проблема?
Post #: 3
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 17:49:31.076666   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
Проблема в поиске базы kernel32. Каким образом?
Функция поиска наводит уныние своим размером и SEH. :-(

Разбор экспорта тоже не очень маленький (но ещё куда ни шло).
Всё упирается в поиск базы.
Post #: 4
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 17:51:42.003333   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
POP EAX
PUSH EAX
find:
DEC EAX
CMP DWORD PTR DS:[EAX],905A4D
JNZ find

На EP этот код поставь, работает под всеми окнами.


Вот еще, но под Win7 не работает

; Get kernel32.dll ImageBase
GetKernelBase proc
PUSH EBP
MOV EBP,ESP
XOR EAX,EAX
MOV EAX,FS:[EAX+30h]
TEST EAX,EAX
JS win9x
MOV EAX,[EAX+0Ch]
MOV ESI,[EAX+1Ch]
LODSD
MOV EAX,[EAX+8]
JMP KernelBaseEnd
win9x:
mov EAX,[EAX+34h]
ADD EAX,7Ch
MOV EAX,[EAX+3Ch]
KernelBaseEnd:
LEAVE
ret
GetKernelBase endp
Post #: 5
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 17:56:42.156666   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
o.O И усё?!
Спасибо.

А как он работает?
Что такое 905A4D? И что в eax?
На W7 тоже работает?

И зачем тогда такое?:
SEH_Block_0000&nbsp; macro &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add esp,-cPushad &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnz GNtBA_L1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; endm IGetNtBaseAddr: @SEH_SetupFrame &lt;SEH_Block_0000&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov ecx,edx &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xchg ax,cx GNtBA_L0:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dec cx &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jz GNtBA_L2 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add eax,-10000h &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pushad &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov bx,-IMAGE_DOS_SIGNATURE &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add bx,word ptr [eax] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov esi,eax &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnz GNtBA_L1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov ebx,-IMAGE_NT_SIGNATURE &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add eax,dword ptr [esi.MZ_lfanew] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov edx,esi &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add ebx,dword ptr [eax] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnz GNtBA_L1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add edx,[eax.NT_OptionalHeader.OH_DirectoryEntries.&nbsp;&nbsp;&nbsp;&nbsp; \ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DE_Export.DD_VirtualAddress] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add esi,dword ptr [edx.ED_Name] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lea edi,dword ptr [ebp+BufStrFilename] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call parse_filename &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov esi,edx &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call get_str_crc32 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmp edx,dword ptr [ebp+CrcKernel32]&nbsp;&nbsp;&nbsp;&nbsp; ;Is KERNEL32.DLL ? &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; je k32_f GNtBA_L1:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; popad &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jmp GNtBA_L0 k32_f:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; popad &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xchg ecx,eax &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inc eax GNtBA_L2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @SEH_RemoveFrame &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret
Post #: 6
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 17:59:46.673333   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
А в GetKernelBase что по адресу FS:[EAX+30h]?
Post #: 7
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:00:49.026666   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
quote:

Что такое 905A4D?


MZ надо же базу найти, в EAX адрес кернеля, но не база.
Post #: 8
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:05:29.296666   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
4d5a, блин! Не заметил сразу. Понял. :-)
Почему в eax адрес? По идее, он же должен в 0 устанавливаться?
А эмуляторы, например, что пишут в eax?
Post #: 9
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:05:56.320000   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
Мой кусочек кода для поиска VirtualProtect, вернет адрес в eax

db 064h, 0A1h, 030h, 000h, 000h, 000h, 08Bh, 040h, 00Ch, 08Bh, 070h, 01Ch, 0ADh, 08Bh, 040h, 008h db 08Bh, 0D8h, 003h, 058h, 03Ch, 083h, 0C3h, 078h, 08Bh, 01Bh, 003h, 0D8h, 08Bh, 053h, 020h, 003h db 0D0h, 053h, 033h, 0DBh, 068h, 063h, 074h, 000h, 000h, 068h, 072h, 06Fh, 074h, 065h, 068h, 075h db 061h, 06Ch, 050h, 068h, 056h, 069h, 072h, 074h, 06Ah, 000h, 083h, 0C4h, 004h, 08Bh, 0F4h, 0B9h db 00Eh, 000h, 000h, 000h, 056h, 051h, 08Bh, 03Ah, 003h, 0F8h, 0F3h, 0A6h, 074h, 008h, 059h, 05Eh db 083h, 0C2h, 004h, 043h, 0EBh, 0EEh, 083h, 0EFh, 00Eh, 083h, 0C4h, 018h, 059h, 0D1h, 0E3h, 08Bh db 051h, 024h, 003h, 0D0h, 003h, 0D3h, 08Bh, 012h, 081h, 0E2h, 0FFh, 0FFh, 000h, 000h, 08Bh, 059h db 01Ch, 003h, 0D8h, 0C1h, 0E2h, 002h, 003h, 0DAh, 08Bh, 013h, 003h, 0D0h, 08Bh, 0C2h
Post #: 10
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:12:00.290000   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
Опять же, а что в fs:[30]?
Post #: 11
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:16:55.193333   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
адрес PEB

fs указывает на TEB

структура TEB:

typedef struct _TEB { NT_TIB NtTib; PVOID EnvironmentPointer; CLIENT_ID ClientId; PVOID ActiveRpcHandle; PVOID ThreadLocalStoragePointer; PPEB ProcessEnvironmentBlock; ULONG LastErrorValue; ULONG CountOfOwnedCriticalSections; PVOID CsrClientThread; PVOID Win32ThreadInfo; ULONG User32Reserved[26]; ULONG UserReserved[5]; PVOID WOW32Reserved; ULONG CurrentLocale; ULONG FpSoftwareStatusRegister; VOID * SystemReserved1[54]; LONG ExceptionCode; PACTIVATION_CONTEXT_STACK ActivationContextStackPointer; UCHAR SpareBytes1[36]; ULONG TxFsContext; GDI_TEB_BATCH GdiTebBatch; CLIENT_ID RealClientId; PVOID GdiCachedProcessHandle; ULONG GdiClientPID; ULONG GdiClientTID; PVOID GdiThreadLocalInfo; ULONG Win32ClientInfo[62]; VOID * glDispatchTable[233]; ULONG glReserved1[29]; PVOID glReserved2; PVOID glSectionInfo; PVOID glSection; PVOID glTable; PVOID glCurrentRC; PVOID glContext; ULONG LastStatusValue; UNICODE_STRING StaticUnicodeString; WCHAR StaticUnicodeBuffer[261]; PVOID DeallocationStack; VOID * TlsSlots[64]; LIST_ENTRY TlsLinks; PVOID Vdm; PVOID ReservedForNtRpc; VOID * DbgSsReserved[2]; ULONG HardErrorMode; VOID * Instrumentation[9]; GUID ActivityId; PVOID SubProcessTag; PVOID EtwLocalData; PVOID EtwTraceData; PVOID WinSockData; ULONG GdiBatchCount; UCHAR SpareBool0; UCHAR SpareBool1; UCHAR SpareBool2; UCHAR IdealProcessor; ULONG GuaranteedStackBytes; PVOID ReservedForPerf; PVOID ReservedForOle; ULONG WaitingOnLoaderLock; PVOID SavedPriorityState; ULONG SoftPatchPtr1; PVOID ThreadPoolData; VOID * * TlsExpansionSlots; ULONG ImpersonationLocale; ULONG IsImpersonating; PVOID NlsCache; PVOID pShimData; ULONG HeapVirtualAffinity; PVOID CurrentTransactionHandle; PTEB_ACTIVE_FRAME ActiveFrame; PVOID FlsData; PVOID PreferredLanguages; PVOID UserPrefLanguages; PVOID MergedPrefLanguages; ULONG MuiImpersonation; WORD CrossTebFlags; ULONG SpareCrossTebBits: 16; WORD SameTebFlags; ULONG DbgSafeThunkCall: 1; ULONG DbgInDebugPrint: 1; ULONG DbgHasFiberData: 1; ULONG DbgSkipThreadAttach: 1; ULONG DbgWerInShipAssertCode: 1; ULONG DbgRanProcessInit: 1; ULONG DbgClonedThread: 1; ULONG DbgSuppressDebugMsg: 1; ULONG SpareSameTebBits: 8; PVOID TxnScopeEnterCallback; PVOID TxnScopeExitCallback; PVOID TxnScopeContext; ULONG LockCount; ULONG ProcessRundown; UINT64 LastSwitchTime; UINT64 TotalSwitchOutTime; LARGE_INTEGER WaitReasonBitMap; } TEB, *PTEB;
Post #: 12
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:20:52.230000   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
И сложно, достаточно.

Мне самый маленький код как раз подходит:
POP EAX PUSH EAX find: DEC EAX CMP DWORD PTR DS:[EAX],905A4D JNZ find
Остаётся правда несколько вопросов:
1.) Если в eax адрес kernel32, не может ли очередной багфикс винды это "исправить"?
Тогда всё рухнет. Или это специально так сделано?
2.) Эмуляторы тоже самое закидывают в eax?
3.) У кого-то код работает через SEH, у Sunzer нет, у Flint_ta тоже не через SEH, но я пока не
разобрался. Почему код у всех такой разный?
Post #: 13
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:25:30.650000   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
quote:

Остаётся правда несколько вопросов:
1.) Если в eax адрес kernel32, не может ли очередной багфикс винды это "исправить"?
Тогда всё рухнет. Или это специально так сделано?
2.) Эмуляторы тоже самое закидывают в eax?
3.) У кого-то код работает через SEH, у Sunzer нет, у Flint_ta тоже не через SEH, но я пока не
разобрался. Почему код у всех такой разный?


1) После виндового загрузчика там адрес кернеля всегда лежит, проверял вплоть до Win7.
2) х.з. смотря какой, может да, может нет.
3) Код разный, потому что люди разные, а через seh тоже можно.
Post #: 14
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:31:19.973333   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
2Flint_ta:
А это строка для сравнения:
PUSH 7463
PUSH 65746F72
PUSH 506C6175
PUSH 74726956
PUSH 0
?
Или что это?
Не очень понимаю, как работает (вообще не понимаю).
И без критических секций… Разьве не будет работать?
Сейчас пойду искать что почитать. :-)

2Sunzer
:
quote:

1) После виндового загрузчика там адрес кернеля всегда лежит, проверял вплоть до Win7.

А не может быть такое, что они - бац, и отрубят это в очередной версии сервис пака сразу для
нескольких версий винды?
Или на это много больших программ закладывается?
Post #: 15
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:41:27.476666   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
 
quote:

ORIGINAL: quester

2Flint_ta:
А это строка для сравнения:
PUSH 7463
PUSH 65746F72
PUSH 506C6175
PUSH 74726956
PUSH 0
?


Это мои извращения, это так я в стэк кидаю имя функции :)
Post #: 16
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:50:30.060000   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
2Flint_ta:

Оригинально.

Начал искать. Нашёл кое-что.
Мда, по ходу, как появляется новая версия, базу ищут по-новому. :-/
У вас работает на w7?

На cracklab:
http://www.cracklab.ru/f/index.php?action=vthread&amp;forum=6&amp;topic=14749

Там, кстати, код, почти один в один, как у Sunzer.
Работает и на w7 тоже.
Post #: 17
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 18:57:47.770000   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
Так там его пост [sm=ag.gif]
Post #: 18
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 19:07:28.016666   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
Гы, и правда, ник я не прочитал. [sm=ag.gif]
Мда, возник ещё вопрос: как разбирать таблицу экспорта.
Я почитал уже не только исходники.
В исходниках функция казалась маленькой. Поскольку использовала CRC, вместо строк. :-(

Может есть вариант менее "кодо-затратный", чем простой поиск?
Post #: 19
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 19:13:38.556666   
Flint_ta

Сообщений: 3720
Оценки: 1120
Присоединился: 2007-01-26 15:49:18.323333
Самый простой способ это как минимум получить адреса GetProcAddress и LoadLibraryA а далее зная их получать все остальные необходимые функции стандартным способом без извращений.
Post #: 20
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 19:19:34.070000   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
Так мне сейчас нужна-то только VirtualProtect.
Больно уж долго и муторно - прямым поиском. :-/
Интересно, загрузчик делает так же..?
Post #: 21
RE: Установка прав на запись в секцию во время выполнения - 2009-10-02 20:47:12.690000   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
Нашёл на wasm.
Поиск по хэшам, но не CRC32.
http://www.wasm.ru/article.php?article=searchapi
Post #: 22
RE: Установка прав на запись в секцию во время выполнения - 2009-10-03 02:06:44.320000   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
Теперь вываливается с ошибкой VirtualProtect.
Вызываю так:
; В return - мусор ; VirtualProtect([code_pointer + edx], decryptor_end - code_pointer, ;&nbsp;&nbsp; PAGE_EXECUTE_READWRITE, [return + edx]); ; Адрес для старого атрибута push offset return add [esp - 4], edx push PAGE_EXECUTE_READWRITE ; Размер области push ecx ; Начало области push ebx call dword ptr [eax] return - запрещена для записи.
Вылетает ошибка.
Но, если делать так:
; Адрес для старого атрибута ; push offset return push 0 push esp ;add [esp - 4], edx push PAGE_EXECUTE_READWRITE ; Размер области push ecx ; Начало области push ebx call dword ptr [eax]
Тоже вылетает ошибка.

Где я напортачил?
Post #: 23
RE: Установка прав на запись в секцию во время выполнения - 2009-10-03 10:45:59.013333   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
О, блин! У меня обострение тупости. call eax.

P.S.: Кажется я разговариваю сам с собою… Вслух?
Post #: 24
RE: Установка прав на запись в секцию во время выполнения - 2009-10-04 21:31:38.416666   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
Нет, просто твой топик не мониторится круглосуточно. Остались еще какие то вопросы? Спрашивай.
Post #: 25
RE: Установка прав на запись в секцию во время выполнения - 2009-10-05 13:37:28.150000   
quester

Сообщений: 78
Оценки: 0
Присоединился: 2008-10-17 10:09:21.190000
quote:

Нет, просто твой топик не мониторится круглосуточно.

Не, я не жалуюсь. Ответили по делу и очень оперативно. Спасибо большое.
Просто я действительно начал разговаривать сам собою вслух… :D Хм… Мда, это мне не очень нравится. Первый шаг на пути …? Чего-то не так. [>:]

Вопросы будут, спрошу. :)
Post #: 26
Страниц:  [1]
Все форумы >> [Прочее] >> Установка прав на запись в секцию во время выполнения







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.