Понедельник, 30.12.2024, 21:12 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Волк-1024, Anton93, xXxSh@dowxXx  
Работа с памятью напрямую
AndroidДата: Среда, 22.02.2012, 10:12 | Сообщение # 1
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
Товарищи, подскажите, если я выделю своей прожке памяти с помощью
Code
function AllocMem(Size: Cardinal): Pointer;
, то как потом менять байты памяти???

Хочу из тела проги в память копировать зашифрованый кусок, на который ругаются АВ, а потом прямо в памяти его расшифровать и подцепить к своей проге (код в виде ДЛЛ). В модуле Доступно только для пользователей есть функции, чтоб использовать в своей проге загруженные в память библиотеки.

Вобщем, мне кажется, что таким образом можно попытаться обойти АВ, если вызывать функции из таких вот библиотек, которые бы существовали только в памяти.

Давайте попробуем разобраться.


Сообщение отредактировал Android - Среда, 22.02.2012, 10:12
 
vvova15Дата: Среда, 22.02.2012, 11:22 | Сообщение # 2
Участник
Зарегистрирован: 24.04.2010
Группа: Пользователи
Сообщений: 83
Статус: Offline
ну для начала [url=http://msdn.microsoft.com/en-us/library/windows/desktop/aa366887(v=vs.85).aspx]VirtualAlloc-ом[/url] выделяй память , чтобы туда загрузить код:
Code

var pAddr:pointer;
...
pAddr:=VirtualAlloc(0, сколько надо , MEM_COMMIT or MEM_RESERVE or MEM_TOP_DOWN, PAGE_EXECUTE_READWRITE{чтоб инструкции в буфере могли выполниться} );

ну а потом грузишь код в выделенную память(простым копированием с помощью CopyMemory) и передаешь управление типа:
Code

asm
jmp pAddr
end;

только в конец кода не забудь записать инструкцию
jmp
или
push
retn
или для x64:
jmp [addr]
чтобы вернуть передать управление коду программы, после тгго как выполниться код в буфере



ICQ 185-398
 
AndroidДата: Среда, 22.02.2012, 15:11 | Сообщение # 3
Постоянный
Зарегистрирован: 13.12.2011
Группа: Пользователи
Сообщений: 100
Статус: Offline
Можно ли как-то из тела проги скопировать данные прямо в память, потом интерпретировать это как длл и подгрузить из нее функции???
Никто таким не занимался?
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz