Как стать автором
Обновить

Комментарии 4

Неплохо!

Конечно, лучше всё таки посмотреть количество принимаемых аргументов с помощью какого-нибудь декомпилятора типа иды, и написать через LoadLibrary/GetProcAddress, дёргая функции оригинальной дллки, передавая им то же самое, но не заморачиваясь со стеком. Заодно декомпилятор скажет cdecl там, stdcall, или какой-нибудь fastcall.
Продумывал такой вариант, однако не всегда можно автоматически определить тип функции и её параметры. Если она экспортируется в виде "?func1@a@@AAEXH@Z" — тогда да. А если экспортируется так же, как в получившемся у меня бинарнике — то, насколько я знаю, только вручную, анализируя ассемблер и поведение стека.
В моём враппере 93 функции, из них залезть потребовалось только в 2. То есть 91 функцию мне пришлось бы разбирать вхолостую.

Декомпилятор способен определить количество входных аргументов вполне без проблем. Они теперь умные, особенно у IDA.
В интернете найти всё необходимое очень просто, а для того, чтобы воспользоваться, особенно если есть понимание что такое ассемблерный код, вообще много мозгов не потребуется)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории