inqsoft sign 0f misery позволял программировать это кликами мышкой. Не знаю работает ли он на современных версиях Windows, но раньше спасал кучу времени на подобных задачах.
Нет, конечно.
Надстройка над GUI делается за полчаса.
А искать(и уж тем-более реверсить) и реализовывать алгоритм распаковки/запаковки — значительно более долгая задача.
Ну и ключевой вопрос: А зачем?
Ради чего городить забор, если можно быстро и с минимумом затрат реализовать простое и эффективное решение?
Да, у меня возникли проблемы с выгрозкой кода в репозиторий, это пароль от Debug — сборка.7z. Как видно из хаоса в репозитории, я только начинаю разбираться с гитом.
Вообще гуглом нашел архив. А внутри был Readme.txt…
А если бы не нашел, то рассматривал вариант, который предложил Prototik. Мы же это чисто теоретически да, в научных интересах? :o)
1) распаковал бы exe утилиты или игры, если необходимо. Утилита упакована обычным upx — тут даже навыки никакие не нужны, существует миллион распаковщиков (например, встроенный в PE Explorer).
2) посмотрел бы в IDA (или в другом инструменте), что там и куда вызывается.
Чтобы поправить псевдокод Hex-Rays до вида на картинке потребовалось пара минут. И стало видно, что readme не врет.
А дальше можно разобрать формат архивов (unpack_procedure на картинке).
Полученный опыт это здорово, но с практической точки зрения на AutoIt это делается в три строчки (если бы утилита не принимала параметры, как уже заметили). Посмотрите, может еще пригодится.
По поводу того, почему не работало сообщение CB_ADDSTRING, а сообщение WM_SETTEXT срабатывало. Я думаю это внутренний механизм Винды здесь выходит на сцену. Когда сообщение шлется эдит контролу, и оно содержит в себе указатель на память из другого процесса (программа автоматизатор щлет строку распоковщику), то винда сериализует буфер строки и в таргет процессе уже использует адрес буфера, валидный в контексте таргет процесса. На сколько я помню, это было сделано для обратной совместимости со всякими Win95. В случае с CB_ADDSTRING и ComboBoxEx32, возможно, этот механизм не работает.
Как мы распаковку игры автоматизировали