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

 eXeL@B —› Программирование —› Bit-hack
Посл.ответ Сообщение

Ранг: 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.30
Статус: Участник

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

нахрена инлайн?
Лоадер тебе в руки.

-----
iNTERNATiONAL CoDE CReW




Ранг: 200.3 (наставник)
Активность: 0.090
Статус: Участник

Создано: 25 ноября 2007 17:28
· Личное сообщение · #3

Spirit пишет:
нахрена инлайн?
Лоадер тебе в руки.
- 1WMZ если не упаковано. Сделают для тебя и за тебя

-----
Само плывет в pуки только то, что не тонет.





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
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.090
Статус: Участник

Создано: 25 ноября 2007 17:37
· Личное сообщение · #6

самое простое что в голову приходит - открываешь прогу свою как файл, и ищешь строку symbol, когда найдёшь - меняй её на symbol (количество символов совпадает => ненадо думать больше ни о чём)

-----
Само плывет в pуки только то, что не тонет.





Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 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.30
Статус: Участник

Создано: 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.470.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.680
Статус: Модератор
Author of DiE

Создано: 25 ноября 2007 18:46
· Личное сообщение · #12

ух) не проще ли вызвать GreateProcess(прога_1) и пид мы уже будем знать , а не мучиться
с поиском нужной проги?

-----
[nice coder and reverser]





Ранг: 605.2 (!), 341thx
Активность: 0.470.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.470.25
Статус: Модератор
Research & Development

Создано: 28 ноября 2007 12:18
· Личное сообщение · #15

Fireleo
по-моему, реализация данного примера на практике очень полезна программисту для понимания работы системы, процессов, памяти и т.п.

-----
EnJoy!




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 28 ноября 2007 15:06
· Личное сообщение · #16

Fireleo пишет:
это на кого же ты интерсно учишся если вам препода такие задачи подкидывают?

А ты думал, куда "старики" с нашего форума уходят?
В преподы, куда ж ещё =).

-----
Всем привет, я вернулся




Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 28 ноября 2007 21:45 · Поправил: HiEndsoft
· Личное сообщение · #17

А ты им вирь замути.
Может дохтора наук дадут......условно

-----
продавец резиновых утёнков




Ранг: 77.7 (постоянный), 1thx
Активность: 0.040
Статус: Участник

Создано: 28 ноября 2007 22:45 · Поправил: ufo_maniac
· Личное сообщение · #18

HiEndsoft пишет:
А ты им вирь замути.
Может дохтора наук дадут......условно

дадут... посмертно



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 ноября 2007 23:00
· Личное сообщение · #19

Всем спасибо за участие, тему можно закрывать.


 eXeL@B —› Программирование —› Bit-hack
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати