Посл.ответ |
Сообщение |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 25 ноября 2007 17:21 · Личное сообщение · #1
Необходимо изменить значение переменной в работаюшей программе. Программа_1 примитивна, сожержит массив к примеру char slovo[] = "symbol"; необходимо создать программу_2 которая при запущенной описанной выше программе_1 изменит в ней строку "symbol" например на "slovo_"
Слышал о методе on-line patch, кажется с помощью него можно решить эту задачу. Только вот не хватает примера или с чего начать. Известен адрес строки соотвественно и 16-ое представление строки "symbol".
| Сообщение посчитали полезным: |
|
Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 25 ноября 2007 17:26 · Личное сообщение · #2
нахрена инлайн?
Лоадер тебе в руки.
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
Ранг: 200.3 (наставник) Активность: 0.09↘0 Статус: Участник
|
Создано: 25 ноября 2007 17:28 · Личное сообщение · #3
Spirit пишет:
нахрена инлайн?
Лоадер тебе в руки. - 1WMZ если не упаковано. Сделают для тебя и за тебя
----- Само плывет в pуки только то, что не тонет. | Сообщение посчитали полезным: |
Ранг: 340.0 (мудрец), 22thx Активность: 0.12↘0 Статус: Участник THETA
|
Создано: 25 ноября 2007 17:30 · Личное сообщение · #4
Вообще-то, Bit-hack несколько другое, и не имеет отношения к сабжу, в том контексте, в каком подал ты...
А так, самый логичный вариант, Spirit пишет: Лоадер тебе в руки.
----- Программист SkyNet | Сообщение посчитали полезным: |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 25 ноября 2007 17:33 · Личное сообщение · #5
Ничего не упаковано. Необходимо прогу на С написать, не знаю с чего начать. И программа_1 мною же написана, надо написать программу_2 которая изменит это "symbol" на "slovo_" . Отпадает использование Hview и прочих для правки значения.
| Сообщение посчитали полезным: |
Ранг: 200.3 (наставник) Активность: 0.09↘0 Статус: Участник
|
Создано: 25 ноября 2007 17:37 · Личное сообщение · #6
самое простое что в голову приходит - открываешь прогу свою как файл, и ищешь строку symbol, когда найдёшь - меняй её на symbol (количество символов совпадает => ненадо думать больше ни о чём)
----- Само плывет в pуки только то, что не тонет. | Сообщение посчитали полезным: |
Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 25 ноября 2007 17:45 · Личное сообщение · #7
n0names
Ты какой то извращенец.
Нахера патчить свои проги?
DrFits пишет:
ищешь строку symbol
n0names пишет:Известен адрес строки соотвественно и 16-ое представление строки "symbol".
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 25 ноября 2007 17:45 · Личное сообщение · #8
2 DrFits: Спасибо, но эт не то что мне нужно. Хочу в памяти поправить т.к. программа_1 загружена в памяти должна быть т.е. выполнятся. Вот прогу прикрепил. fd96_25.11.2007_CRACKLAB.rU.tgz - Project1.exe
| Сообщение посчитали полезным: |
Ранг: 271.6 (наставник), 2thx Активность: 0.3↘0 Статус: Участник
|
Создано: 25 ноября 2007 17:47 · Поправил: Spirit · Личное сообщение · #9
n0names
Так бы сразу и сказал.
Юзой ReadProcessMemory и WriteProcessMemory и не ипи нам мосХ
----- iNTERNATiONAL CoDE CReW | Сообщение посчитали полезным: |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 25 ноября 2007 17:47 · Личное сообщение · #10
2 Spirit. Эт не я извращенец, а препода =)
| Сообщение посчитали полезным: |
Ранг: 605.2 (!), 341thx Активность: 0.47↘0.25 Статус: Модератор Research & Development
|
Создано: 25 ноября 2007 18:39 · Личное сообщение · #11
n0names
Итак, запущена прога_1, нужно запустить прогу_2, которая в памяти проги_1 изменит известную строковую константу на свою. Так?
Пишешь прогу_2:
При запуске она ищет при помощи FindWindow окно проги с именем окна C++ и классом окна TForm1 (у тебя в проге_1 именно так), узнаешь ID процесса, которому принадлежит окно (GetWindowThreadProcessId). Есть ещё вариант с перечислением процессов и сравнением с именем прога_1. После этого ты уже знаешь ID процесса, следовательно, можешь спокойно патчить память процесса проги_1.
----- EnJoy! | Сообщение посчитали полезным: |
Ранг: 990.2 (! ! !), 380thx Активность: 0.68↘0 Статус: Модератор Author of DiE
|
Создано: 25 ноября 2007 18:46 · Личное сообщение · #12
ух) не проще ли вызвать GreateProcess(прога_1) и пид мы уже будем знать , а не мучиться
с поиском нужной проги?
----- [nice coder and reverser] | Сообщение посчитали полезным: |
Ранг: 605.2 (!), 341thx Активность: 0.47↘0.25 Статус: Модератор Research & Development
|
Создано: 25 ноября 2007 19:14 · Личное сообщение · #13
Hellspawn
конечно проще ;)
но я исходил из условия задания:
Необходимо изменить значение переменной в работаюшей программе.
это значит, что к моменту запуска проги_2, прога_1 уже запущена
в любом случае, это лишь две дополнительные строчки кода ;)
invoke FindWindow,pWndClass,pWndName
и
invoke GetWindowThreadProcessId,eax,pProcID
----- EnJoy! | Сообщение посчитали полезным: |
Ранг: 2.1 (гость) Активность: 0=0 Статус: Участник
|
Создано: 28 ноября 2007 10:53 · Личное сообщение · #14
n0names
это на кого же ты интерсно учишся если вам препода такие задачи подкидывают?
| Сообщение посчитали полезным: |
Ранг: 605.2 (!), 341thx Активность: 0.47↘0.25 Статус: Модератор Research & Development
|
Создано: 28 ноября 2007 12:18 · Личное сообщение · #15
Fireleo
по-моему, реализация данного примера на практике очень полезна программисту для понимания работы системы, процессов, памяти и т.п.
----- EnJoy! | Сообщение посчитали полезным: |
Ранг: 495.3 (мудрец) Активность: 0.3↘0 Статус: Участник
|
Создано: 28 ноября 2007 15:06 · Личное сообщение · #16
Fireleo пишет:
это на кого же ты интерсно учишся если вам препода такие задачи подкидывают?
А ты думал, куда "старики" с нашего форума уходят?
В преподы, куда ж ещё =).
----- Всем привет, я вернулся | Сообщение посчитали полезным: |
Ранг: 237.0 (наставник), 20thx Активность: 0.13↘0 Статус: Участник sysenter
|
Создано: 28 ноября 2007 21:45 · Поправил: HiEndsoft · Личное сообщение · #17
А ты им вирь замути.
Может дохтора наук дадут. .....условно
----- продавец резиновых утёнков | Сообщение посчитали полезным: |
Ранг: 77.7 (постоянный), 1thx Активность: 0.04↘0 Статус: Участник
|
Создано: 28 ноября 2007 22:45 · Поправил: ufo_maniac · Личное сообщение · #18
HiEndsoft пишет:
А ты им вирь замути.
Может дохтора наук дадут......условно
дадут... посмертно
| Сообщение посчитали полезным: |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 28 ноября 2007 23:00 · Личное сообщение · #19
Всем спасибо за участие, тему можно закрывать.
| Сообщение посчитали полезным: |