Привет всем, Есть сторонний exe файл, нужно сделать так, чтобы его нельзя было запустить без моей главной программы. Была идея хранить его в зашифрованном виде, из моей программы расшифровывать и запускать из памяти, но похоже, что это не так просто. Я могу в него свою длл инжектить, вот может можно как-то exe'шник подправить, чтобы он при запуске смотрел свою таблицу импорта и если не находил там мою длл, то не запускался? или еще какие идеи? В какую сторону смотреть?
Может я чего-то непонял. Сделай так, как поступают простенькие врапперы от NevoSoft итд. Портишь EP(точку входа) у нужного ехе, после чего он станет неработоспособным. Для красоты можешь туда написать завершение программы (ret), чтобы с ошибкой не валился. А твоя прога будет запускать этот ехе (CreateProcess), после чего переписывать попорченные байты (WriteProcessMemory) и отпускать на исполнение.
спасибо, а можно чуть подробнее, как это сделать? я просто пришел из плюсов и с асмом на Вы. ну т.е. надо открыть exe в каком нибудь отладчике, например, IDA pro или Soft Ice, верно? и что там где надо править? Или может быть можно программно exe-файл подредактировать?
ок, создал я процесс с помощью CreateProcess, как мне теперь узнать адрес, по которому нужно восстанавливать правильные байты? этот адрес должен идти вторым параметром в функции WriteProcessMemory.