Pull to refresh

Comments 16

inqsoft sign 0f misery позволял программировать это кликами мышкой. Не знаю работает ли он на современных версиях Windows, но раньше спасал кучу времени на подобных задачах.
Как-то кривенько. Не лучше ли было найти/реализовать алгоритм распаковки самостоятельно и к нему уже написать обвес в виде GUI/CLI?
Нет, конечно.
Надстройка над GUI делается за полчаса.
А искать(и уж тем-более реверсить) и реализовывать алгоритм распаковки/запаковки — значительно более долгая задача.
Ну и ключевой вопрос: А зачем?
Ради чего городить забор, если можно быстро и с минимумом затрат реализовать простое и эффективное решение?
Это есть в планах. Просто команде нужен был инструмент и быстро. А что именно кривенько?
А файлик Пароль.txt точно должен быть в репозитории? :)
Да, у меня возникли проблемы с выгрозкой кода в репозиторий, это пароль от Debug — сборка.7z. Как видно из хаоса в репозитории, я только начинаю разбираться с гитом.
Так у этой GUI-утилиты есть параметры командной строки…
Распаковщик.exe <gamedata.db?> [output-directory]
Чувствую себя дураком (. А как вы это нашли?
Вообще гуглом нашел архив. А внутри был Readme.txt…

А если бы не нашел, то рассматривал вариант, который предложил Prototik. Мы же это чисто теоретически да, в научных интересах? :o)
1) распаковал бы exe утилиты или игры, если необходимо. Утилита упакована обычным upx — тут даже навыки никакие не нужны, существует миллион распаковщиков (например, встроенный в PE Explorer).
2) посмотрел бы в IDA (или в другом инструменте), что там и куда вызывается.

Спасибо Ida Pro и Hex-Rays

Чтобы поправить псевдокод Hex-Rays до вида на картинке потребовалось пара минут. И стало видно, что readme не врет.

А дальше можно разобрать формат архивов (unpack_procedure на картинке).
IDA стоит денег и больших. Далеко не у каждого разработчика она есть. Тем более, что далеко не каждому разработчику она нужна.
Спасибо, я попробую повторить шаги.
Полученный опыт это здорово, но с практической точки зрения на AutoIt это делается в три строчки (если бы утилита не принимала параметры, как уже заметили). Посмотрите, может еще пригодится.
По поводу того, почему не работало сообщение CB_ADDSTRING, а сообщение WM_SETTEXT срабатывало. Я думаю это внутренний механизм Винды здесь выходит на сцену. Когда сообщение шлется эдит контролу, и оно содержит в себе указатель на память из другого процесса (программа автоматизатор щлет строку распоковщику), то винда сериализует буфер строки и в таргет процессе уже использует адрес буфера, валидный в контексте таргет процесса. На сколько я помню, это было сделано для обратной совместимости со всякими Win95. В случае с CB_ADDSTRING и ComboBoxEx32, возможно, этот механизм не работает.
Как не явно — то. Спасибо, не знал о таком.
Sign up to leave a comment.

Articles

Change theme settings