Сейчас на форуме: bartolomeo, -Sanchez- (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Loader
Посл.ответ Сообщение

Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 25 января 2006 17:14
· Личное сообщение · #1

Опять про лоадер....
У меня возник вопрос как на ASM(на крайний случай на Delphi) написать лоадер который искал бы нужный байт в заданном диапазоне адресов. Я просмотрел все темы про создание лоадеров вручную, но там написано только как патчить байт по фиксированному адресу.

P.S. Мне такой лоадер нужен не из-за DMA, а из-за того что хочу написать лоадер подходящий для разных версий проги.




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 25 января 2006 17:40
· Личное сообщение · #2

А ReadProcessMemory не подойдет...

Типа читаешь в буфер ReadProcessMemory
Ищешь нужный байт, потом WriteProcessMemory

-----
StarForce и Themida ацтой!




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

Создано: 25 января 2006 18:09
· Личное сообщение · #3

Только искать не байт а синг. а то промахнутся легко.



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 25 января 2006 19:07
· Личное сообщение · #4

ReadProcessMemory или InjectLibrary(это не API, а название функции у Рихтера, тогда обращение просто через указатели)



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

Создано: 25 января 2006 19:13
· Личное сообщение · #5

Step
ReadProcessMemory - ЛОЛ

MSDN:

ReadProcessMemory
The ReadProcessMemory function reads data from an area of memory in a specified process. The entire area to be read must be accessible, or the operation fails.
BOOL ReadProcessMemory(
HANDLE hProcess,
LPCVOID lpBaseAddress,
LPVOID lpBuffer,
SIZE_T nSize,
SIZE_T* lpNumberOfBytesRead
);



Ранг: 64.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 25 января 2006 19:16
· Личное сообщение · #6

xDriver
1. Выбирай выражения.
2. Читай внимательней. Речь об InjectLibrary. Хотя если ты найдёшь её в MSDN...
3. Где ты такой умный взялся?



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

Создано: 25 января 2006 19:39
· Личное сообщение · #7

Step
1) Какие выражения ? (конкректно).

2) Тогда пиши нормально ReadProcessMemory или InjectLibrary(это не API,

3) выбирай выражения




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 25 января 2006 19:43
· Личное сообщение · #8

Что за флуд?



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 25 января 2006 20:10
· Личное сообщение · #9

Можно пожалуйста кусками кода, а не отдельными API




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 25 января 2006 20:23
· Личное сообщение · #10

Veliant пишет:
Можно пожалуйста кусками кода, а не отдельными API

Может уже готовый написать, чего уж там?




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

Создано: 25 января 2006 21:39
· Личное сообщение · #11

самый простой способ - при помощи ReadProcessMemory в буфер грузишь достаточно большой кусок кода, ищешь в нём, не нашёл - грузишь ещё и т.д.
если прога не пакована, то можно вообще сначала смапить файл, в нём всё найти, перевести в VA, а потом уж с готовыми данными патчить процесс в памяти.

-----
EnJoy!




Ранг: 160.9 (ветеран), 1thx
Активность: 0.050
Статус: Участник

Создано: 25 января 2006 22:10
· Личное сообщение · #12

[code]
MOV ESI, [откуда ищем]
CLD
MOV ECX, 2h --->сколько байт для сравнения
MOV EDI, [что ищем]
REPE CMPSB --->сравниваем результаты
[/code]
Все это использовать с ReadProcessMemory и все можно найти



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 25 января 2006 23:07
· Личное сообщение · #13

спасибо


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


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