Посл.ответ |
Сообщение |
Ранг: 10.8 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 26 июля 2007 10:43 · Поправил: fdiller · Личное сообщение · #1
как сделать патч, загруженного в память процесса, чтобы находил значения строки '78 77 65' и менял их на значения '70 72 65'? тоже самое как в ArtMoney...
| Сообщение посчитали полезным: |
|
Ранг: 238.8 (наставник), 67thx Активность: 0.2↘0 Статус: Участник CyberHunter
|
Создано: 26 июля 2007 10:49 · Личное сообщение · #2
CreateProcessA
OpenProcess
VirtualProtect
WriteProcessMemory
CloseHandle
----- Nulla aetas ad discendum sera | Сообщение посчитали полезным: |
Ранг: 222.2 (наставник), 115thx Активность: 0.14↘0.01 Статус: Участник
|
Создано: 26 июля 2007 10:59 · Личное сообщение · #3
Юзай готовые патчеры, Dup2 например (там есть serch & replace патч памяти) или Yoda Process Patcher
Flint пишет:
CreateProcessA
OpenProcess
VirtualProtect
WriteProcessMemory
CloseHandle
так бы fdiller пытался сделать, если бы постил свой топик в разделе "Програмирование" ))
----- все багрепорты - в личные сообщения | Сообщение посчитали полезным: |
Ранг: 10.8 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 26 июля 2007 11:12 · Поправил: fdiller · Личное сообщение · #4
HandMill пишет:
Юзай готовые патчеры, Dup2 например (там есть serch & replace патч памяти)
нужно чтобы вначале программа была загружена и потом патчить... в dup2 лоадер только создается
| Сообщение посчитали полезным: |
Ранг: 196.0 (ветеран), 72thx Активность: 0.14↘0.02 Статус: Участник
|
Создано: 26 июля 2007 11:27 · Личное сообщение · #5
fdiller пишет:
нету там патч памяти уже юзал
Search & Replace- а это чё такое?Найти и заменить-тошто тебе как раз и нужно.Или мы тебя не так поняли?
| Сообщение посчитали полезным: |
Ранг: 10.8 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 26 июля 2007 11:44 · Личное сообщение · #6
Djeck пишет:
Search & Replace- а это чё такое?Найти и заменить-тошто тебе как раз и нужно.Или мы тебя не так поняли?
да патч создается, но тока он патчит программу не загруженную... если загружена , то ошибку выдает патч... как сделать, чтобы загруженную пропатчить?
| Сообщение посчитали полезным: |
Ранг: 161.0 (ветеран) Активность: 0.12↘0 Статус: Участник
|
Создано: 26 июля 2007 11:54 · Личное сообщение · #7
Дык для этого нужны лоадеры. =)
| Сообщение посчитали полезным: |
Ранг: 196.0 (ветеран), 72thx Активность: 0.14↘0.02 Статус: Участник
|
Создано: 26 июля 2007 12:26 · Личное сообщение · #8
fdiller пишет:
да патч создается, но тока он патчит программу не загруженную
Парни может я чё перекурил и давно не пользовался DUP,но помойму для того,чтобы просто пропатчить программу(не загруженную) там существует offset patch,а патч в процессе как раз и есть Search & Replace???А может я и загнался!!!
| Сообщение посчитали полезным: |
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.07 Статус: Участник
|
Создано: 26 июля 2007 13:04 · Личное сообщение · #9
fdiller
Как тебе здесь сказали, тебе нужен лоадер, а не патч.
В нете много исходников, поищи, а если нужно готовое решение, то юзой t.p.e. aka tola's patching engine,
ну или на кройняк Yoda Process Patcher.
----- xchg dword [eax], eax | Сообщение посчитали полезным: |
Ранг: 226.0 (наставник), 67thx Активность: 0.16↘0 Статус: Участник
|
Создано: 26 июля 2007 16:02 · Личное сообщение · #10
fdiller пиши лоадер. Ставь хук на какой нибуть апик, а потом ищи и патч.
Вот тебе готовая --> процедура <--
| Сообщение посчитали полезным: |
Ранг: 72.4 (постоянный), 33thx Активность: 0.05↘0.03 Статус: Участник
|
Создано: 26 июля 2007 16:39 · Личное сообщение · #11
Если нада пропатчить прям после запуска, то делай типа этого(delphi):
var
WIN,PID,TID,HND : integer;
WRT,Poke,addr : cardinal;
poke:=$657270; //нада писать наоборот
addr = $;//адрес
WIN := FindWindow(nil,'йа окно');
GetWindowThreadProcessId(WIN,@PID);
HND := OpenProcess(PROCESS_ALL_ACCESS,False,PID);
virtualprotectex(HND,ptr(addr),2,PAGE_READWRITE,WRT); // если нада
WriteProcessMemory(HND,ptr(addr),@poke,3,WRT);
closehandle(HND);
| Сообщение посчитали полезным: |
Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 26 июля 2007 16:46 · Личное сообщение · #12
ValdikSS пишет:
WIN := FindWindow(nil,'йа окно');
GetWindowThreadProcessId(WIN,@PID);
зачем так извращаться, не проще ли самому запустить процесс?
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 222.2 (наставник), 115thx Активность: 0.14↘0.01 Статус: Участник
|
Создано: 26 июля 2007 17:04 · Личное сообщение · #13
Да исходников и так валом, ребята, что тут писать то? Человек просто скорее всего не умеет пользоваться патчерами, а писать свой лоадер для него помоему очень тяжело, вот тому подтверждение:
fdiller пишет:
Djeck пишет:
Search & Replace- а это чё такое?Найти и заменить-тошто тебе как раз и нужно.Или мы тебя не так поняли?
да патч создается, но тока он патчит программу не загруженную... если загружена , то ошибку выдает патч... как сделать, чтобы загруженную пропатчить?
Search & Replace для ЛОАДЕРА нельзя что ли подручными средствами Dup'а сделать уже или тебе нужны скриншоты и видеоролик?
----- все багрепорты - в личные сообщения | Сообщение посчитали полезным: |
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.07 Статус: Участник
|
Создано: 26 июля 2007 17:08 · Личное сообщение · #14
Имхо тема топега уже исчерпала себя, на вопрос ответили уже.
fdiller
Или пиши сам лоадер, или юзой какой нить генератор лоадеров.
----- xchg dword [eax], eax | Сообщение посчитали полезным: |
Ранг: 10.8 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 26 июля 2007 17:49 · Личное сообщение · #15
ValdikSS пишет:
Если нада пропатчить прям после запуска, то делай типа этого(delphi):
var
WIN,PID,TID,HND : integer;
WRT,Poke,addr : cardinal;
poke:=$657270; //нада писать наоборот
addr = $;//адрес
WIN := FindWindow(nil,'йа окно');
GetWindowThreadProcessId(WIN,@PID);
HND := OpenProcess(PROCESS_ALL_ACCESS,False,PID);
virtualprotectex(HND,ptr(addr),2,PAGE_READWRITE,WRT); // если нада
WriteProcessMemory(HND,ptr(addr),@poke,3,WRT);
closehandle(HND);
тогда как сделать, чтобы находил все адреса строки '78 77 65'
| Сообщение посчитали полезным: |
Ранг: 226.0 (наставник), 67thx Активность: 0.16↘0 Статус: Участник
|
Создано: 26 июля 2007 17:52 · Личное сообщение · #16
fdiller пишет:
тогда как сделать, чтобы находил все адреса строки '78 77 65'
через ReadProcessMemory
| Сообщение посчитали полезным: |
Ранг: 340.0 (мудрец), 22thx Активность: 0.12↘0 Статус: Участник THETA
|
Создано: 26 июля 2007 17:58 · Личное сообщение · #17
v0id2k пишет:
Или пиши сам лоадер, или юзой какой нить генератор лоадеров.
Только этих два варианта и есть.
Если не можешь или не хочешь писать свой лоадер, воспользуйся готовыми решениями, например DUP2, позволяющей найти определенные байты и заменить их, причем даже в запакованной проге. Есть и масса других решений, а также примеры сырцов на всех языках, наверное. Просто скачай готовый пример и посмотри как реализуется.
Вот и все, ничего другого тебе тут не посоветуют.
----- Программист SkyNet | Сообщение посчитали полезным: |
Ранг: 226.0 (наставник), 67thx Активность: 0.16↘0 Статус: Участник
|
Создано: 26 июля 2007 18:04 · Личное сообщение · #18
Или договаривайся с кем-то чтоб тебе написал...
| Сообщение посчитали полезным: |
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.07 Статус: Участник
|
Создано: 26 июля 2007 23:54 · Личное сообщение · #19
fdiller
Если вы кодите на делфе, то в аттаче лоадер, измените как нужно и скомпелируйте. d4ad_26.07.2007_CRACKLAB.rU.tgz - loader.dpr
----- xchg dword [eax], eax | Сообщение посчитали полезным: |
Ранг: 25.3 (посетитель) Активность: 0.01↘0 Статус: Участник
|
Создано: 27 июля 2007 10:18 · Личное сообщение · #20
Вот уж и растянули тему. Что тут говорить, не умея писать программ можно и не браться за взлом. Потому что в этом деле не всегда подходит стандартный инструмент,а писать приходится самому.
| Сообщение посчитали полезным: |
Ранг: 10.8 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 27 июля 2007 10:34 · Личное сообщение · #21
v0id2k пишет:
Если вы кодите на делфе, то в аттаче лоадер, измените как нужно и скомпелируйте.
ну это опять почти тоже самое, что ValdikSS давал... нет процедуры , которая переберет все байты и найдет строки от начала, загруженного процесса в память до конца
| Сообщение посчитали полезным: |
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.07 Статус: Участник
|
Создано: 27 июля 2007 10:53 · Личное сообщение · #22
fdiller пишет:
нет процедуры , которая переберет все байты и найдет строки от начала, загруженного процесса в память до конца
Сами допешите, в чем проблема то?
----- xchg dword [eax], eax | Сообщение посчитали полезным: |
Ранг: 10.8 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 27 июля 2007 13:22 · Личное сообщение · #23
v0id2k пишет:
Сами допешите, в чем проблема то?
еслиб знал я здесь бы не писал
| Сообщение посчитали полезным: |
Ранг: 10.8 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 27 июля 2007 13:25 · Личное сообщение · #24
ни dup2 ни другие не подходят ... т.е. это только надо писать самому
| Сообщение посчитали полезным: |
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.07 Статус: Участник
|
Создано: 27 июля 2007 15:14 · Личное сообщение · #25
fdiller
Как я понял нужен лоадер, который бы запускал нужный процесс и находил значение строки по адресу $хххххххх и менял его на значение строки по адресу $yyyyyyyy, так?
----- xchg dword [eax], eax | Сообщение посчитали полезным: |
Ранг: 10.8 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 28 июля 2007 09:44 · Поправил: fdiller · Личное сообщение · #26
v0id2k пишет:
Как я понял нужен лоадер, который бы запускал нужный процесс и находил значение строки по адресу $хххххххх и менял его на значение строки по адресу $yyyyyyyy, так?
нет ... как найти адрес процесса, загруженного в память, с которого искать и адрес до которого искать ?
чтобы зацыклить перебор байтов
| Сообщение посчитали полезным: |
Ранг: 10.8 (новичок) Активность: 0=0 Статус: Участник
|
Создано: 28 июля 2007 13:41 · Личное сообщение · #27
лоадер написал... Спасибо кто отозвался!
| Сообщение посчитали полезным: |
Ранг: 72.4 (постоянный), 33thx Активность: 0.05↘0.03 Статус: Участник
|
Создано: 28 июля 2007 19:03 · Личное сообщение · #28
Hellspawn
зачем так извращаться, не проще ли самому запустить процесс?
Ему ж нада пропатчить когда он уже запущен. или я че недопонял?
| Сообщение посчитали полезным: |