Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

изменение переменных процесса снаружи   Найти похожие ветки 

 
nick_van_rijn ©   (2007-01-16 12:24) [0]

Доброго времени суток. Необходимо изменить переменную в адресном пространстве запущенного мною же  процесса.

Подскажите кто видел когда нибудь PE файлы в разобранном состоянии. Компилирую проэкт с созданием map файла. Получаю относительный адрес необходимой мне переменной , например
02:00001BDC : a - 2 страница:адрес
отладчик показывает адрес а = 451BDC - относительно старотового адреса 400000 , как имея структуры файла в памяти IMAGE_NT_HEADERS, IMAGE_DOS_HEADER,IMAGE_SECTION_HEADER получить из первого второе, для далнейшего применения read/write processmemory?


 
Psychedelic ©   (2007-01-16 14:00) [1]

Ой чувак не мудри, отправь ему лучше какое нить специальное сообщение. Пусть он сам изменит.


 
Сергей М. ©   (2007-01-16 14:16) [2]


> для далнейшего применения read/write processmemory


Для этого ничего не требуется, кроме уже готового адреса $451BDC, который показал тебе отладчик. Этот самый адрес и передавай в read/write processmemory.


 
nick_van_rijn ©   (2007-01-16 14:30) [3]

я тут на форуме тему нашел, люди указатель на TypeInfo искали для удаления элемента из массива элементов произвольного типа, вот въезжаю пока....
а насчет не мудрить, так подругому никак,тот процесс у меня получается динамически - пишу ручками, из первого процесса дпр, запускаю dcc32, получаю exe, он запускается,вычисляет  и стоит, я должен прочесть переменныеи узнать их значения и убить вычисляющий процесс)


 
Сергей М. ©   (2007-01-16 15:09) [4]


> nick_van_rijn ©   (16.01.07 14:30) [3]


Какое отношение TypeInfo имеет к твоему вопросу ?


> насчет не мудрить, так подругому никак


Ты вот скажи, начерта тебе мудрить с сабжем. если оба приложения (и запускающее и запускаемое) твои ?

Тебе же в [1] уже намекнули - интерпроцессное взаимодействие между приложениями твоей разработки не требует никаких "премудростей" с доступом (к якобы "чужим") данным через анус)


 
nick_van_rijn ©   (2007-01-16 15:52) [5]

хорошо, вопрос, ничего конкретного а так хочу идеи послушать, как для компилятора организовать вычисление строки(правильной паскаль строки), без какого либо её преобразования.
var a,b:integer=5;

...
macro("a:=b*2")//// a=10;b=5;


 
Сергей М. ©   (2007-01-16 15:56) [6]

см. любой интерпретатор Паскаля.

Но к read/writememory это опять же не имеет ни малейшего отношения


 
Elen ©   (2007-01-16 15:56) [7]


>  он запускается,вычисляет  и стоит

А может пусть вместо стоит, скажем, формирует отчет в текстовый файл? или через Map файл?


> у меня получается динамически - пишу ручками, из первого
> процесса дпр, запускаю dcc32, получаю exe

Если не секрет, просто интересно - для какой задачи?


 
nick_van_rijn ©   (2007-01-16 16:04) [8]

база данных содержит в своих полях продукционные правила в текстовом виде(по другому никак), логика основных компонентов вырабатывает новые правила и пишет их в базу, выражения  надо  постоянно считать, выражения могут достаточно сложными получаться, с функциями, с битовыми операциями и пр.


 
Сергей М. ©   (2007-01-16 16:06) [9]


> nick_van_rijn ©   (16.01.07 16:04) [8]


Все это расчудесно, но причем здесь read/write processmemory?


 
nick_van_rijn ©   (2007-01-16 16:14) [10]

заело человека....
запускаю откомпилированный экзешник, который уже умеет считать мою формулу, и дальние указатели на все переменный хотел читать из АП вычисляющего процесса значения переменных, потому как в автоматом-писный текст dpr-a много не напишеш, и межпроцессорный обмен тем более..


 
Сергей М. ©   (2007-01-16 16:20) [11]


> nick_van_rijn ©   (16.01.07 16:14) [10]



> запускаю откомпилированный экзешник, который уже умеет считать
> мою формулу


Экзешник-то - твой !

Вот и "научи" его передавать в вызывающее приложение (оно ведь тоже твоё !) интересующие тебя значения !


> в автоматом-писный текст dpr-a много не напишеш, и межпроцессорный
> обмен тем более


Галиматьища несусветная.


 
Elen ©   (2007-01-16 16:22) [12]


> потому как в автоматом-писный текст dpr-a много не напишеш,
>  и межпроцессорный обмен тем более..

Ух грузно... Неужели скидывание переменок в файл не катит? Разве это трудно прописать? И почему это "межпроцессорный обмен тем более". Наоборот удобно!


 
Elen ©   (2007-01-16 16:26) [13]


> апускаю откомпилированный экзешник, который уже умеет считать
> > мою формулу

Кстати, а почему б не сделать модуль со всеми расчетами и не использовать его в исходной проге? Зачем нужен еще один экзешник, который почему то компилить нужно автоматом (я правильно понимаю что он всякий раз содержит другой код?), ну и впихни его (этот код) в модуль.


 
evvcom ©   (2007-01-16 16:42) [14]

Или генери тогда не *.exe а *.dll. C нею все гораздо проще. Хотя для тебя начинаю думать, что нет :(


 
nick_van_rijn ©   (2007-01-16 16:44) [15]

>интересующие тебя значения
на момент выполнения я не знаю какие меня интересуют, у меня просто строка....
> не сделать модуль со всеми расчетами
из базы пришла строка, какой модуль поможет мне её посчитать с учетом того что я об этой строке не знаю ничего?


 
nick_van_rijn ©   (2007-01-16 16:45) [16]

>evvcom
помоему я никому не грубил для перехода на оскорбления


 
Сергей М. ©   (2007-01-16 16:47) [17]


> у меня просто строка


Тебя эта самая строка интересует ?
Это и есть интересующее тебя значение.


 
evvcom ©   (2007-01-16 16:51) [18]

> [16] nick_van_rijn ©   (16.01.07 16:45)
> помоему я никому не грубил

согласен

тебе дали столько советов, а ты зацепился не понятно за что. Лучший совет, имхо, встроить интерпретатор. И не нужны никакие доп.модули и извращения.


 
Elen ©   (2007-01-16 16:52) [19]


> из базы пришла строка

Приведи пример строки. (Телепативно намекаю на парсинг)


 
nick_van_rijn ©   (2007-01-16 17:03) [20]

>а ты зацепился не понятно

[5]>ничего конкретного а так хочу идеи послушать
я хорошо знаю что такое межпроцессорный обмен, помню про пайпы и майлслоты, файлы отображенные в память...., просто файлы проблема в моеём случае не в этом.
хотя  применение dcc32 для этой задачи оч интересно

>Приведи пример строки
все что логика надумает посли общения с экспертом, на в основном
"If var_a>var_b*0,32 then var_c*0,68"


 
Elen ©   (2007-01-16 17:08) [21]


> nick_van_rijn

Тогда точно интерпретатор поможет. (хотя такие коры по-моему лучше на прологе писать). И все-таки непонятно почему ты в проге которая генерится автоматом не можеш прописать, так сказать, скрипт создания файла отчета?
Хотя странная какая-то строка... паскаль ее не возьмет...


 
nick_van_rijn ©   (2007-01-16 17:19) [22]

Спасибо от начинающего,хм, за ответы.


 
nick_van_rijn ©   (2007-01-19 09:47) [23]

а ответ состоял в  словах - ms scripting system. паскаля там конечно нету но к VBscript легко подгоню.



Страницы: 1 вся ветка

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.034 c
2-1168750003
koha
2007-01-14 07:46
2007.02.04
Копировать массив в вдругой массив через TMemoryStream


2-1169042673
Extar
2007-01-17 17:04
2007.02.04
ЕХЕ весит 25кб и не запускается на других машинах почему?


15-1168704775
default
2007-01-13 19:12
2007.02.04
кто-нибуль писал графические редакторы типа ERwin?


2-1169198242
Extar
2007-01-19 12:17
2007.02.04
Не сворачивается главная форма.


15-1168733277
_silver
2007-01-14 03:07
2007.02.04
Планируется новая версия CDM