Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Изменение констант в приложении.....

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Изменение констант в приложении.....
Имя
Сообщение << Старые топики   Новые топики >>
Изменение констант в приложении..... - 2010-07-26 22:03:40.466666   
Cannibal666

Сообщений: 59
Оценки: 0
Присоединился: 2007-01-09 19:18:48.060000
Привет всем…вопрос может показаться глуповатым для кого то..но все же прошу помощи, так чисто ради интереса на такую тему пишу…допустим есть скомпиленый на делфи файл, в нем указанна определенная константа, с каким то значением ..так вот каким образом значение этой константы можно изменить не прибегая к перекомпиляции, я имею ввиду создать еще одно приложение, которое смогло бы менять какие либо параметры другой программы…или может есть у кого исходники на данную тему…
Post #: 1
RE: Изменение констант в приложении..... - 2010-07-27 01:16:33.846666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Создавать ничего не надо. Уже всё изобретено. Называется HEX-редактор. Только надо быть осторожно со строковыми константами - нельзя менять их длину.
Post #: 2
RE: Изменение констант в приложении..... - 2010-07-27 01:22:02.600000   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
VirtualProtect с параметрами READ | WRITE
Post #: 3
RE: Изменение констант в приложении..... - 2010-07-27 10:16:38.796666   
Fairhawk

Сообщений: 102
Оценки: 0
Присоединился: 2010-05-25 21:10:59.193333
ищешь через hex редатор эту константу, если надо, то сразу изменяешь ее там, либо запоминаешь ее адрес, после чего:
const msg = hello_world// чем будем заменять. var FS: TFileStream; begin FS:=TFileStream.Create('C:\proga.exe', fmOpenReadWrite); FS.position:= 0x11111; // адрес константы. FS.Write(msg, 10); // 10, число заменяемых байт. FS.Free; end;
Самый просто вариант
Post #: 4
RE: Изменение констант в приложении..... - 2010-07-27 12:15:47.750000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333

quote:

ORIGINAL: Sunzer

VirtualProtect с параметрами READ | WRITE

А причём тут работа с памятью о_О ?
Post #: 5
RE: Изменение констант в приложении..... - 2010-07-27 13:31:05.193333   
Fairhawk

Сообщений: 102
Оценки: 0
Присоединился: 2010-05-25 21:10:59.193333

quote:

ORIGINAL: _SaZ_

quote:

ORIGINAL: Sunzer

VirtualProtect с параметрами READ | WRITE

А причём тут работа с памятью о_О ?

угу, для этого SetFilePointer, и WriteFile нужны
Post #: 6
RE: Изменение констант в приложении..... - 2010-07-27 14:39:09.313333   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666

quote:

ORIGINAL: _SaZ_

quote:

ORIGINAL: Sunzer

VirtualProtect с параметрами READ | WRITE

А причём тут работа с памятью о_О ?


Вопрос ТС'а не понял, думал во время исполнения программы нужно изменить константу. Константы находятся ведь в секции данных с атрибутами READ.

А по сабжу, можно создать новую секцию, вписать туда нужные данные, и изменить указатель на них.
Post #: 7
RE: Изменение констант в приложении..... - 2010-07-27 16:16:20.363333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
А ещё можно написать свой мегадизассемблер и компилятор, которые сначала разберут программу, потом поменяют константы и соберут её.

Тут вариантов немного:
1. ТС хочет поменять лэйблы, копирайты и т.п. в чужой программе. Тогда - любым способом обычное редактирование файла (в т.ч. программно)
2. ТС хочет что-то компилировать в большом количестве, но с разными константами (например, липовыми почтовыми адресами) - тут тупо кодогенерация + билд скрипты.
Post #: 8
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Изменение констант в приложении.....







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.