![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
изменение переменных процесса снаружи
nick_van_rijn © (2007-01-16 12:24:00)Доброго времени суток. Необходимо изменить переменную в адресном пространстве запущенного мною же процесса.
Подскажите кто видел когда нибудь PE файлы в разобранном состоянии. Компилирую проэкт с созданием map файла. Получаю относительный адрес необходимой мне переменной , например
02:00001BDC : a - 2 страница:адрес
отладчик показывает адрес а = 451BDC - относительно старотового адреса 400000 , как имея структуры файла в памяти IMAGE_NT_HEADERS, IMAGE_DOS_HEADER,IMAGE_SECTION_HEADER получить из первого второе, для далнейшего применения read/write processmemory?
nick_van_rijn (2007-01-19 09:47:00) [1]а ответ состоял в словах - ms scripting system. паскаля там конечно нету но к VBscript легко подгоню.
nick_van_rijn (2007-01-16 17:19:00) [2]Спасибо от начинающего,хм, за ответы.
Elen (2007-01-16 17:08:00) [3]
> nick_van_rijn
Тогда точно интерпретатор поможет. (хотя такие коры по-моему лучше на прологе писать). И все-таки непонятно почему ты в проге которая генерится автоматом не можеш прописать, так сказать, скрипт создания файла отчета?
Хотя странная какая-то строка... паскаль ее не возьмет...
nick_van_rijn (2007-01-16 17:03:00) [4]>а ты зацепился не понятно
[5]>ничего конкретного а так хочу идеи послушать
я хорошо знаю что такое межпроцессорный обмен, помню про пайпы и майлслоты, файлы отображенные в память...., просто файлы проблема в моеём случае не в этом.
хотя применение dcc32 для этой задачи оч интересно
>Приведи пример строки
все что логика надумает посли общения с экспертом, на в основном
'If var_a>var_b*0,32 then var_c*0,68'
Elen (2007-01-16 16:52:00) [5]
> из базы пришла строка
Приведи пример строки. (Телепативно намекаю на парсинг)
evvcom (2007-01-16 16:51:00) [6]> [16] nick_van_rijn © (16.01.07 16:45)
> помоему я никому не грубил
согласен
тебе дали столько советов, а ты зацепился не понятно за что. Лучший совет, имхо, встроить интерпретатор. И не нужны никакие доп.модули и извращения.
Сергей М. (2007-01-16 16:47:00) [7]
> у меня просто строка
Тебя эта самая строка интересует ?
Это и есть интересующее тебя значение.
nick_van_rijn (2007-01-16 16:45:00) [8]>evvcom
помоему я никому не грубил для перехода на оскорбления
nick_van_rijn (2007-01-16 16:44:00) [9]>интересующие тебя значения
на момент выполнения я не знаю какие меня интересуют, у меня просто строка....
> не сделать модуль со всеми расчетами
из базы пришла строка, какой модуль поможет мне её посчитать с учетом того что я об этой строке не знаю ничего?
evvcom (2007-01-16 16:42:00) [10]Или генери тогда не *.exe а *.dll. C нею все гораздо проще. Хотя для тебя начинаю думать, что нет :(
Elen (2007-01-16 16:26:00) [11]
> апускаю откомпилированный экзешник, который уже умеет считать
> > мою формулу
Кстати, а почему б не сделать модуль со всеми расчетами и не использовать его в исходной проге? Зачем нужен еще один экзешник, который почему то компилить нужно автоматом (я правильно понимаю что он всякий раз содержит другой код?), ну и впихни его (этот код) в модуль.
Elen (2007-01-16 16:22:00) [12]
> потому как в автоматом-писный текст dpr-a много не напишеш,
> и межпроцессорный обмен тем более..
Ух грузно... Неужели скидывание переменок в файл не катит? Разве это трудно прописать? И почему это "межпроцессорный обмен тем более". Наоборот удобно!
Сергей М. (2007-01-16 16:20:00) [13]
> nick_van_rijn © (16.01.07 16:14) [10]
> запускаю откомпилированный экзешник, который уже умеет считать
> мою формулу
Экзешник-то - твой!
Вот и "научи" его передавать в вызывающее приложение (оно ведь тоже твоё!) интересующие тебя значения !
> в автоматом-писный текст dpr-a много не напишеш, и межпроцессорный
> обмен тем более
Галиматьища несусветная.
nick_van_rijn (2007-01-16 16:14:00) [14]заело человека....
запускаю откомпилированный экзешник, который уже умеет считать мою формулу, и дальние указатели на все переменный хотел читать из АП вычисляющего процесса значения переменных, потому как в автоматом-писный текст dpr-a много не напишеш, и межпроцессорный обмен тем более..
Сергей М. (2007-01-16 16:06:00) [15]
> nick_van_rijn © (16.01.07 16:04) [8]
Все это расчудесно, но причем здесь read/write processmemory?
nick_van_rijn (2007-01-16 16:04:00) [16]база данных содержит в своих полях продукционные правила в текстовом виде(по другому никак), логика основных компонентов вырабатывает новые правила и пишет их в базу, выражения надо постоянно считать, выражения могут достаточно сложными получаться, с функциями, с битовыми операциями и пр.
Elen (2007-01-16 15:56:00) [17]
> он запускается,вычисляет и стоит
А может пусть вместо стоит, скажем, формирует отчет в текстовый файл? или через Map файл?
> у меня получается динамически - пишу ручками, из первого
> процесса дпр, запускаю dcc32, получаю exe
Если не секрет, просто интересно - для какой задачи?
Сергей М. (2007-01-16 15:56:00) [18]см. любой интерпретаторПаскаля.
Но к read/writememory это опять же не имеет ни малейшего отношения
nick_van_rijn (2007-01-16 15:52:00) [19]хорошо, вопрос, ничего конкретного а так хочу идеи послушать, как для компилятора организовать вычисление строки(правильной паскаль строки), без какого либо её преобразования.
var a,b:integer=5;
...
macro('a:=b*2')//// a=10;b=5;
Сергей М. (2007-01-16 15:09:00) [20]
> nick_van_rijn © (16.01.07 14:30) [3]
Какое отношение TypeInfo имеет к твоему вопросу ?
> насчет не мудрить, так подругому никак
Ты вот скажи, начерта тебе мудрить с сабжем. если оба приложения (и запускающее и запускаемое) твои?
Тебе же в [1] уже намекнули - интерпроцессное взаимодействие между приложениями твоейразработки не требует никаких "премудростей" с доступом (к якобы "чужим") данным через анус)