Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.05 c
2-1168961921
Галинка
2007-01-16 18:38
2007.02.04
Несколько ComboBox, ссылающихся на одну и ту же таблицу


3-1163586337
Ольга
2006-11-15 13:25
2007.02.04
Создание дистрибутива


2-1168947031
Barma
2007-01-16 14:30
2007.02.04
StringGrid


15-1168430363
<rm>
2007-01-10 14:59
2007.02.04
Уместно ли использовать компонент Indy?


15-1168860340
XTD
2007-01-15 14:25
2007.02.04
ОФФ:Borland.Delphi.2006.Enterprise





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский