| Посл.ответ | Сообщение | 
| 
 Ранг: 301.4 (мудрец), 194thx Активность: 0.17↘0.01
 Статус: Участник
 
 | Создано: 25 января 2006 17:14 · Личное сообщение ·  #1
 
Опять про лоадер....
 У меня возник вопрос как на ASM(на крайний случай на Delphi) написать лоадер который искал бы нужный байт в заданном диапазоне адресов. Я просмотрел все темы про создание лоадеров вручную, но там написано только как патчить байт по фиксированному адресу.
 P.S. Мне такой  лоадер нужен не из-за DMA, а из-за того что хочу написать лоадер  подходящий для разных версий проги.
  | Сообщение посчитали полезным: | 
|  | 
| 
  Ранг: 392.8 (мудрец), 108thx Активность: 0.26↘0.01
 Статус: Участник
 REVENGE сила, БеХоЦе могила
 
 | Создано: 25 января 2006 17:40 · Личное сообщение ·  #2
 
А ReadProcessMemory не подойдет...
 Типа читаешь в буфер ReadProcessMemory
 Ищешь нужный байт, потом WriteProcessMemory
----- StarForce и Themida ацтой!
  | Сообщение посчитали полезным: | 
| 
 Ранг: 45.1 (посетитель) Активность: 0.03↘0
 Статус: Участник
 
 | Создано: 25 января 2006 18:09 · Личное сообщение ·  #3
 
Только искать не байт а синг. а то промахнутся легко.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 64.6 (постоянный) Активность: 0.02↘0
 Статус: Участник
 
 | Создано: 25 января 2006 19:07 · Личное сообщение ·  #4
 
ReadProcessMemory или InjectLibrary(это не API, а название функции у Рихтера, тогда обращение просто через указатели)
  | Сообщение посчитали полезным: | 
| 
 Ранг: 45.1 (посетитель) Активность: 0.03↘0
 Статус: Участник
 
 | Создано: 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.02↘0
 Статус: Участник
 
 | Создано: 25 января 2006 19:16 · Личное сообщение ·  #6
 
xDriver
1. Выбирай выражения.
 2. Читай внимательней. Речь об InjectLibrary. Хотя если ты найдёшь её в MSDN...
 3. Где ты такой умный взялся?
  | Сообщение посчитали полезным: | 
| 
 Ранг: 45.1 (посетитель) Активность: 0.03↘0
 Статус: Участник
 
 | Создано: 25 января 2006 19:39 · Личное сообщение ·  #7
 
Step
1) Какие выражения ? (конкректно).
 2) Тогда пиши нормально  ReadProcessMemory или InjectLibrary(это не API, 3) выбирай выражения       | Сообщение посчитали полезным: | 
| 
  Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0
 Статус: Участник
 
 | Создано: 25 января 2006 19:43 · Личное сообщение ·  #8
 
Что за флуд?
  | Сообщение посчитали полезным: | 
| 
 Ранг: 301.4 (мудрец), 194thx Активность: 0.17↘0.01
 Статус: Участник
 
 | Создано: 25 января 2006 20:10 · Личное сообщение ·  #9
 
Можно пожалуйста кусками кода, а не отдельными API
  | Сообщение посчитали полезным: | 
| 
  Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0
 Статус: Участник
 
 | Создано: 25 января 2006 20:23 · Личное сообщение ·  #10
 
Veliant пишет:
Можно пожалуйста кусками кода, а не отдельными API
 Может уже готовый написать, чего уж там?
  | Сообщение посчитали полезным: | 
| 
  Ранг: 605.2 (!), 341thx Активность: 0.47↘0.25
 Статус: Модератор
 Research & Development
 
 | Создано: 25 января 2006 21:39 · Личное сообщение ·  #11
 
самый простой способ - при помощи ReadProcessMemory в буфер грузишь достаточно большой кусок кода, ищешь в нём, не нашёл - грузишь ещё и т.д.
 если прога не пакована, то можно вообще сначала смапить файл, в нём всё найти, перевести в VA, а потом уж с готовыми данными патчить процесс в памяти.
----- EnJoy!
  | Сообщение посчитали полезным: | 
| 
 Ранг: 160.9 (ветеран), 1thx Активность: 0.05↘0
 Статус: Участник
 
 | Создано: 25 января 2006 22:10 · Личное сообщение ·  #12
 
[code]			
                                                 MOV		ESI, [откуда ищем]
                                                 CLD
 			MOV		ECX, 2h                 --->сколько байт для сравнения
 			MOV		EDI, [что ищем]
 			REPE	CMPSB                                   --->сравниваем результаты
 [/code]
 Все это использовать с ReadProcessMemory и все можно найти
  | Сообщение посчитали полезным: | 
| 
 Ранг: 301.4 (мудрец), 194thx Активность: 0.17↘0.01
 Статус: Участник
 
 | Создано: 25 января 2006 23:07 · Личное сообщение ·  #13
 
спасибо
  | Сообщение посчитали полезным: |