Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Assembler

Страница: 1 | 2 |

 

  Вопрос: Возможно ли? Добавлено: 06.05.07 12:04  

Автор вопроса:  Visual Basic .NET 2005 Пиратская версия | Web-сайт: ex3mos.ucoz.ru
Есть аппликуха которая юзает регистр ЕАХ. Она кладет туда значение, например 1. Вторая программа должна это значение прочитать. Возможно ли такое?

Ответить

  Ответы Всего ответов: 23  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 06.05.07 12:27
Сам понял, что сказал?

Ответить

Номер ответа: 2
Автор ответа:
 Visual Basic .NET 2005 Пиратская версия



Вопросов: 38
Ответов: 190
 Web-сайт: ex3mos.ucoz.ru
 Профиль | | #2
Добавлено: 06.05.07 13:45
Понял.
App1:
mov eax,1
App2:
mov esi,eax

Ответить

Номер ответа: 3
Автор ответа:
 intel-DX



ICQ: 445091742 

Вопросов: 4
Ответов: 169
 Профиль | | #3 Добавлено: 06.05.07 14:41
Это возможно но так помойму когдато делали DOS-овские програми для контроля своих резидентних копий.

Ответить

Номер ответа: 4
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #4 Добавлено: 06.05.07 15:10
Понял.
App1:
mov eax,1
App2:
mov esi,eax

Бред.

Если бы ты знал суть и назначение регистра eax, ты бы сам понял, что бред.

Это возможно но так помойму когдато делали DOS-овские програми для контроля своих резидентних копий.

Аналогичный бред.

Ответить

Номер ответа: 5
Автор ответа:
 intel-DX



ICQ: 445091742 

Вопросов: 4
Ответов: 169
 Профиль | | #5 Добавлено: 06.05.07 16:25
Когда "бред" то почему ?
А за свои слова я не уверен но где-то читал, что чтобы недать запустить две одинаковых резидентных программы. Первая программа пишит чтото в к какой то регистр или адрес памяти, а другая смотрит туда, когда там чтото есть - она не запускается, а когда нет ничего она загружается в память. Может я ошибаюсь.

Ответить

Номер ответа: 6
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 06.05.07 16:42
"Какой-то регистр" и "регистр eax" - разные вещи.
"Какой-то адрес памяти" и "регистр eax" - разные вещи.

Регистр eax хранит целочисленное значение, возвращаемое каждой функцией, и не сохраняется между вызовами разных функций. По причине чего его нельзя использовать для межпроцессных коммуникаций.

А автор вопроса не понимает, чего хочет.

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 06.05.07 19:05
Когда "бред" то почему ?
А за свои слова я не уверен но где-то читал, что чтобы недать запустить две одинаковых резидентных программы. Первая программа пишит чтото в к какой то регистр или адрес памяти, а другая смотрит туда, когда там чтото есть - она не запускается, а когда нет ничего она загружается в память. Может я ошибаюсь.
Ну это вообще.. чтобы проге определить, запущена ли ее копия, ей достаточно проверить наличие одноименного(путевого) процесса и окна.. возможно еще и AppID.

Ответить

Номер ответа: 8
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #8 Добавлено: 06.05.07 19:06
Ну в винде такое возможно.
В защищенном режиме каждая "аппликуха" работает со своей областью памяти.
Передать инфу через память можно, но явно не через EAX.
Проще написать прогу + dll, и dll'ке передавать адрес и размер переменной.
Ну или только значение, если речь идет о DWORD

Ответить

Номер ответа: 9
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #9 Добавлено: 06.05.07 19:10
Ну это вообще.. чтобы проге определить, запущена ли ее копия, ей достаточно проверить наличие одноименного(путевого) процесса и окна.. возможно еще и AppID

Да, это худший и наименее надёжный способ такого определения.

Проще написать прогу + dll, и dll'ке передавать адрес и размер переменной.

Смысл делать это со своей dll?

Ответить

Номер ответа: 10
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #10 Добавлено: 06.05.07 19:22
Поправлю себя: в винде такое НЕ возможно

Ответить

Номер ответа: 11
Автор ответа:
 intel-DX



ICQ: 445091742 

Вопросов: 4
Ответов: 169
 Профиль | | #11 Добавлено: 06.05.07 20:50
GSerg ты неможеш чтобы не покритиковать, конечно ты напишиш свой вариант котогый "решит" все наши проблемы, а нам будеш втирать что наш вариант это бред

Ответить

Номер ответа: 12
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #12 Добавлено: 06.05.07 20:52
GSerg ты неможеш чтобы не покритиковать

Зависит исключительно от сути предлагаемого к критике.

конечно ты напишиш свой вариант котогый "решит" все наши проблемы

Даже не буду пытаться.

а нам будеш втирать что наш вариант это бред

В тех случаях, когда он им действительно является, ничего другого не остаётся.

Ответить

Номер ответа: 13
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #13
Добавлено: 06.05.07 21:04
И в винде есть вариант, чтобы другое приложение определило, что EAX установлен в 1. Один из вариантов - рабочий поток одной программы создает поток, останавливает его, меняет в его контексте EAX на 1 и через IPC посылает сообщение другой программе "Можешь читать". Другая программа аттачится отладчиком к тому потоку, получает его контекст и проверяет, равен ли в нем EAX 1. При большом желании почесать левое ухо аппендиксом всегда можно.

Ответить

Номер ответа: 14
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #14 Добавлено: 06.05.07 23:11
Зачем? Или спортивный инетрес? Надо синхронизровать два потока/приложения? Так и назвовите тему, а ещё лучше сразу сформулируйте вопрос поисковику...

Ответить

Номер ответа: 15
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #15
Добавлено: 07.05.07 04:20
Нуу, как только кто-то говорит "Это невозможно!" сразу хочется из спортивного интереса сказать "Это Спарта!" и показать, как такое можно сделать :)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам