Я написал программу, которая является своего рода неофициальным, автономным плагином для приложения. Это позволяет клиентам получить услугу, которая является более дешевой альтернативой, чем принадлежащая поставщику. Моя программа не является незаконной, против любого вида TOS, и, конечно, не является вирусом, рекламным ПО или чем-то подобным. При этом поставщик, конечно, не рад тому, что я выбрал его конкурентов, и пытается заблокировать запуск моего приложения.
Он уже попробовал какую-то тактику, чтобы люди не запускали мое приложение вместе со своим. Он делает так, что если он обнаружен, его приложение выдает ложную ошибку.
Сначала он проверил, запущена ли моя программа, и нашел открытое окно с правильным заголовком. Я противостоял этому путем случайного выбора названия программы при запуске.
Затем он искал имя запущенного процесса. Я противостоял этому, создав копию самого приложения, когда оно запускается как [random string] .exe, а затем запустив его.
В любом случае, мой вопрос таков: что еще он может сделать, чтобы определить, работает ли моя программа? Я знаю, что вы можете прочитать текст окна (т.е. строка состояния, метки). Я готов противостоять этому, заменив ярлыки изображениями (тьфу, другим способом?).
Но что еще там? Можете ли вы определить, какие DLL-файлы загружены программой? Если это так, можно ли это решить путем рандомизации имен dll перед их загрузкой?
Я знаю, что можно получить подпись программы в памяти и отследить ее таким образом (как, например, антивирусный сканер), но шансы на то, что он это сделает, вероятно, не очень хороши, потому что это звучит довольно продвинуто.
Несмотря на то, что это довольно глупо с его стороны, это довольно забавно. Это похоже на кулачный бой.
EDIT:
Когда я сказал, что это плагин, это просто (неправильный) термин, который я использовал. Это автономный EXE. «API» между моей и другой программой - просто ввод данных в элементы управления (например, текстовые поля и т. Д.).