Берется программа, обрабатывается простеньким самописным криптором, после чего пакуется UPX. Под Олей было выяснено, что UPX замечательно распаковывает и передает управление на OEP моего стаба. Только тот, проходя по секциям, видит секции UPX'а. Можно ли как-то добратся до уже распакованных секций?
Вручную в оле в дампе памяти найти где находятся секции и поменять кусок кода не трудно. Вопрос в том, как модифицировать стаб, чтобы он самостоятельно находил где находятся распакованные секции.
Hellspawn почти часть данных из ре-заголовка upx хранит отдельно, часть - просчитывает самостоятельно. Но во время распаковки в памяти, ре-заголовок не восстанавливается
Magnum на прежнее место он не кладётся, но в памяти, тем не менее, PE-заголовок присутствует. достаточно сдампить запущенный файл просто поискать 50450000 в памяти. там же есть и имена оригинальных секций. AtaraX алгоритм поиска оригинального PE заголовка: когда твой код получил управление (upx отработал), идёшь от точки входа вверх в поисках 50450000. всё.
Jupiter Спасибо, похоже это то, что мне было нужно. p.s. Господа, как вам идея рядом со стабом положить копию таблицы секций? Решение проблемы для upx похоже что найдено, но ведь пакеров до тучи..
я вообще вместе с данными пакую весь заголовок. потом восстанавливаю его. тк есть некоторые фишки которые без этого не работают. наприсер статически линкуешь rtl от ms vc, без извращений fpu не используешь, если не восстанавливать таблицу секций. Не смотрел как это обойдено в upx, но эту информацию я взял как раз из еего сорцев. ыы, дубли.