Я знаю, что могу использовать 7z или winrar, но я хочу научиться этому для себя.
Как реализовать самораспаковывающийся архив? Я могу использовать C# или C++, но позвольте мне решить проблему.
Когда я открываю exe, мне нужен какой-то графический интерфейс, спрашивающий, где извлечь файлы. Как только пользователь скажет «ОК», я, очевидно, должен их извлечь. Я уже реализовал простой пример в C # winforms, НО моя проблема в том, КАК я могу получить имена файлов и двоичные файлы файлов в exe?
Однажды я спрашиваю Безопасно ли добавить дополнительные данные в конец исполняемого файла? и в ответе было предложено, если я просто добавлю данные в конец исполняемого файла, он может быть обнаружен антивирусным сканером. Теперь довольно легко записать длину архива как последние 4 байта и просто добавить данные в мой общий exe, и я верю, что мой процесс может прочитать мой собственный exe, чтобы это могло работать. Но это кажется хакерским, и я не хочу, чтобы люди обвиняли меня в написании вируса только потому, что я использую эту технику. Каков правильный способ реализовать это?
Примечание. Я проверил самораспаковывающийся тег, и многие вопросы заключаются в том, как манипулировать самораспаковывающимся, а не в том, как реализовать. За исключением этого, который запрашивает что-то еще самораспаковывающийся исполняемый файл с самопроверкой
-edit- Я сделал два самораспаковывающихся с 7z и сравнил их. Похоже... ну, это файл 7z.sfx
, но с добавленным обычным архивом 7z. Так... в этом нет ничего плохого? Есть ли способ лучше? Я нацелен на Windows и могу использовать компилятор С#, чтобы помочь, но я не знаю, сколько дополнительной работы или насколько сложно это может быть программно, и, может быть, добавление данных в конец exe не плохо?