eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 октября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: MasterSoft (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› нужен генератор лоадеров под 64-x битные программы
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 1.4 (гость)
Статус: Участник

Создано: 5 декабря 2015 21:05 New!
Цитата · Личное сообщение · #1

В поиске генераторы лоадеров под 64-x битные программы.

Ранг: 45.7 (посетитель)
Статус: Участник

Создано: 5 декабря 2015 21:27 New!
Цитата · Личное сообщение · #2

А в гугле вас уже забанили?Чем dup не устраивает?

Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 6 декабря 2015 12:13 New!
Цитата · Личное сообщение · #3

Во, а dup разве 64-х битный? Чего-то я первый раз слышу об этом.

Ранг: 95.7 (постоянный)
Статус: Участник

Создано: 6 декабря 2015 13:11 · Поправил: 6 декабря 2015 13:15 unknownproject New!
Цитата · Личное сообщение · #4

Ранг: 45.7 (посетитель)
Статус: Участник

Создано: 7 декабря 2015 00:04 New!
Цитата · Личное сообщение · #5

Kuzya69 пишет:
Во, а dup разве 64-х битный

Нет,x32,что не мешает ему создавать патчи и лоадеры для x64 программKuzya69 пишет:
Чего-то я первый раз слышу об этом.

Читайте больше


Ранг: 149.4 (ветеран)
Статус: Участник

Создано: 7 декабря 2015 01:19 New!
Цитата · Личное сообщение · #6

igorca пишет:
не мешает ему создавать патчи и лоадеры для x64 программ

патчи - возможно, а вот с лоадерами тяжко, так как 32битная версия WriteProcessMemory принимает, как ни странно, только 32битный адрес участка памяти - и это ограничивает доступное для правки пространство первыми 4мя гигабайтами, что далеко не всегда является приемлимым вариантом в х64 процессах.

Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 7 декабря 2015 02:15 New!
Цитата · Личное сообщение · #7

А исходники дуп-а никто не встречал? Может в таком случае перекомпилить его под 64-х битную WriteProcessMemory ?

Ранг: 408.5 (мудрец)
Статус: Участник

Создано: 7 декабря 2015 02:22 · Поправил: 7 декабря 2015 02:23 dosprog New!
Цитата · Личное сообщение · #8

Kuzya69 пишет:
А исходники дуп-а никто не встречал?


Зачем нужны исходники dup'а? Там что, высшая математика, что ли?
Понадобится лоадер под х64 - брать лоадер под х32 и править. Любой.
Віше дали ссылку на тему, там есть х32 пример от PE_KILL'а.


Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 7 декабря 2015 02:50 · Поправил: 7 декабря 2015 03:13 Kuzya69 New!
Цитата · Личное сообщение · #9

И где тут обращение по 64-х битному адресу? Если размерность DWord.
Code:
  1. ExeBase: DWord;
  2. ...............
  3. WriteProcessMemory(pi.hProcess, Pointer(ExeBase + $C9D8), @Data, 4, Data)
  4. ...............

Например у меня надо изменить байт по адресу $00000001401ab8e0.
(Где ExeBase=$0000000140000000 и смещение в файле = 1ab8e0 ).
И как это воспримет этот лоадер?


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 7 декабря 2015 13:29 New!
Цитата · Личное сообщение · #10

Kuzya69 ну так поправить руками знаний не хватает? интересней же самому.

Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 7 декабря 2015 16:39 New!
Цитата · Личное сообщение · #11

Hellspawn
Действительно, не хватает знаний. Намекни поближе к истине, плиз.
Не может же быть так просто (Dword --> Cardinal) ?


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 7 декабря 2015 17:01 New!
Цитата · Личное сообщение · #12

Kuzya69 в delphi 7 уже есть вроде UIN64 и INT64
cardinal это тот же dword

Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 7 декабря 2015 17:06 · Поправил: 7 декабря 2015 17:10 Kuzya69 New!
Цитата · Личное сообщение · #13

И этого хватит? Ф-ция WriteProcessMemory отработает как надо в 64-х битной системе, если лоадерная ф-ция поиска базы найдет правильный адрес?
Извиняюсь, что так надоедаю. Просто Win7 (64-х битная), только на работе. Дома все 32-х битное. Вот и хочу подготовиться заранее. Чтоб на работе не терять время.


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 7 декабря 2015 17:13 New!
Цитата · Личное сообщение · #14

Kuzya69

вроде бы ZwWow64ReadVirtualMemory64 и ZwWow64WriteVirtualMemory64 нужно юзать.

| Сообщение посчитали полезным: Kuzya69


Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 7 декабря 2015 21:32 · Поправил: 7 декабря 2015 21:36 Kuzya69 New!
Цитата · Личное сообщение · #15

Ну вот и первый затык, на чужом компе проверили. Скомпилировал на 32-х битной Делфи. А проверял скомпиленный лоадер на 64-х битной Win7, прога-жертва тоже 64-х битная.
API GetSystenInfo неверно определяет границы приложения в памяти.
Когда приложение 32-х битное, все правильно, а когда 64-х битное, то границы определяются как для 32-х битного приложения. Следовательно никакой базы приложения потом и не находится.
Функцию GetNativeSystemInfo, мой Делфи вообще не признает. Как быть?

Ранг: 408.5 (мудрец)
Статус: Участник

Создано: 7 декабря 2015 21:48 New!
Цитата · Личное сообщение · #16

Kuzya69 пишет:
Как быть?


--> Link <--


Ранг: 1991.4 (!!!!)
Статус: Модератор
retired

Создано: 7 декабря 2015 22:46 New!
Цитата · Личное сообщение · #17

Что мешает собрать в х64 или выкинуть дельфи и использовать язык, который в состоянии адекватно работать со всеми апи?

| Сообщение посчитали полезным: elch



Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 7 декабря 2015 23:13 New!
Цитата · Личное сообщение · #18

Kuzya69
базу можно получить и другими способами))) или собрать сразу в 64 постввив XE

Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 8 декабря 2015 01:57 · Поправил: 8 декабря 2015 01:59 Kuzya69 New!
Цитата · Личное сообщение · #19

А если из PE-заголовка взять базу, она всегда будет соответствовать действительности ? Или в 64-битках это не правило?
Чета, у меня GetNativeSystemInfo еще большую ересь показывает.
Archer
Просто из всех языков, которых я знаю плохо, Дельфи я знаю лучше.


Ранг: 1991.4 (!!!!)
Статус: Модератор
retired

Создано: 8 декабря 2015 12:12 New!
Цитата · Личное сообщение · #20

Что в х86, что в х64 реальная база может не соответствовать базе из хедера. !Гугл таблица релокаций.

Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 8 декабря 2015 13:11 New!
Цитата · Личное сообщение · #21

А тогда какой способ поиска ImageBase будет наиболее верным для 64-х битного приложения запущенного в suspend режиме? Имеется ввиду, что лоадер будет 32-х битным. Я хочу сделать лоадер так сказать "не зависимым от разрядности". Потому-что прорамма-жертва есть и 32-х и 64-х битная.


Ранг: 1991.4 (!!!!)
Статус: Модератор
retired

Создано: 8 декабря 2015 13:31 New!
Цитата · Личное сообщение · #22

Наиболее верного не будет. Будет недокументированный костыль. Сделай 2 нормальных файла под разные архитектуры и на ходу дропай и запускай просто нужный, как это process explorer делает.


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 8 декабря 2015 14:30 New!
Цитата · Личное сообщение · #23

Kuzya69 можно вот так, но код только на си, выдрал из проекта
Code:
  1.     PROCESS_BASIC_INFORMATION_WOW64 pbi;
  2.     ZeroMemory(&pbi, sizeof(pbi));
  3.  
  4.     if (!NT_SUCCESS(NtQueryInfoProcess(hProcess, ProcessBasicInformation, &pbi, sizeof(pbi), NULL)))
  5.         return FALSE;
  6.          
  7.          static DWORD pebSize = 0x40;
  8.          BYTE buf[0x1000] = {0};
  9.  
  10.     if (!NT_SUCCESS(NtWow64ReadVirtualMemory64(hProcess, pbi.PebBaseAddress, buf, pebSize, NULL)))
  11.         return FALSE;
  12.          
  13.          PPEB64 ppeb = (PPEB64)buf;
  14.          *memStart = ppeb->ImageBaseAddress; <-- base


Ранг: 333.9 (мудрец)
Статус: Участник
born to be evil

Создано: 8 декабря 2015 15:12 New!
Цитата · Личное сообщение · #24

мне всегда было интересно, откуда Archer и Hellspawn обладают специфичными знаниями
Kuzya69
--> Link <-- - поройся. в плане описания функций и вообще

Ранг: 30.1 (посетитель)
Статус: Участник

Создано: 8 декабря 2015 17:35 · Поправил: 8 декабря 2015 17:38 Kuzya69 New!
Цитата · Личное сообщение · #25

Словами можно объяснить, что делает этот оператор?
Code:
  1. PPEB64 ppeb = (PPEB64)buf;

Чтоб попробовать его на Делфи перенести. Прошу пардона, но пытаюсь врубиться в код от Hellspawn.
Про указатели и разименование вроде понял (последний оператор).

Ранг: 440.8 (мудрец)
Статус: Участник

Создано: 8 декабря 2015 17:43 New!
Цитата · Личное сообщение · #26

Kuzya69 пишет:
Словами можно объяснить этот оператор?

на дэлфи это будет примерно так
Code:
  1. type
  2.   TPEB64 = packed record
  3.      ..
  4.   end;
  5. var
  6.   ppeb: TPEB64;
  7. begin
  8.   copymemory(@ppeb,@buf,sizeof(ppeb));
  9. end;

Ранг: 3.6 (гость)
Статус: Участник

Создано: 8 декабря 2015 20:31 · Поправил: 8 декабря 2015 20:32 carpucio New!
Цитата · Личное сообщение · #27

дэльфэ гавно, кардиналы, пакед рекорды, костыли под апи, мракобесие. в sdk все хидеры изкаробки идут под 64бит без наживания дополнительного геммороя аля дэльфэ


Ранг: 1991.4 (!!!!)
Статус: Модератор
retired

Создано: 8 декабря 2015 20:50 New!
Цитата · Личное сообщение · #28

Не будет там copymemory, это тупо присваивание указателя.
Может стоит уже почитать матчасть, прежде чем вываливать сюда вопросы по основам?

Ранг: 440.8 (мудрец)
Статус: Участник

Создано: 8 декабря 2015 23:34 New!
Цитата · Личное сообщение · #29

Archer пишет:
Не будет там copymemory, это тупо присваивание указателя.

гы-гы сколько пишу в дэлфи, ни разу не знал что так можно делать
Code:
  1. type
  2.   TPEB64 = packed record
  3.      ..
  4.   end;
  5. var
  6.   ppeb: ^TPEB64;
  7. begin
  8.   ppeb:=@buf;
  9.   memStart:=ppeb^.ImageBaseAddress;
  10. end;

спасибо

Ранг: 408.5 (мудрец)
Статус: Участник

Создано: 9 декабря 2015 00:16 · Поправил: 9 декабря 2015 00:22 dosprog New!
Цитата · Личное сообщение · #30

)) Кстати, жутким костылём по Си-шным понятиям считается вот это (присваивание без приведения типа):
Code:
  1.   ppeb:=@buf;
- А в делфи ничего, прокатывает.
. 1 . 2 . >>
 eXeL@B —› Софт, инструменты —› нужен генератор лоадеров под 64-x битные программы

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS