Есть одна замечательная программа, которая для проверки корректности введенного в нее кода сама генерит правильный код и сравнивает его с введенным в окошко. Нет ни времени ни желания разбираться с алгоритмом работы генератора (не реально огромный код), но хочется сделать кейген. Данная функция (генерация кода) содержится в dll. Сначала я подумал что это обычная dll просто функция не экспортируется. Сделал самостоятельную загрузку и вызов функции - кейген стал падать. Как выяснил на вызовах некоторых функций. Присмотревшиь по внимательней понял что dll представляет собой ActiveX компонент. Собственно вопрос: как правильно подргузить dll, инициализировать ее и вызвать некий код ?
MoKC0DeR В общем случае надо определить CLSID кокласса и IID интерфейса, "представляющего" нужную ф-цию. Лучше всего посмотреть(в отладчике), как это делает сама программа. Скорее всего будет вызов CoCreateInstance c получением нужного интерфейса, а потом косвенный вызов по определённому смещению в таблице методов интерфейса (как при вызове виртуальной ф-ции в С++). Также посмотри (в HKCR\Interfaces\{IID}) нет ли случайно для этого интерфейса библиотеки типов. Тогда можно (директива #import в VC++) сгенерировать С++-представление данного интерфейса в виде абстрактного класса (с оригинальными именами всех методов).
Проще редактором ресурсов заглянуть в TLB самой длл, обычно там всё и рассказано За редким исключением, tlb идёт рядом (как с вордом).
Там, где идет сравнение введённого кода с правильным можно поставить jmp на свой код, в котором будет происходить вывод на экран правильного кода (MessageBoxA например). Ток это для ленивых
MoKC0DeR IceStudent прав - скорее всего tlb находится в ресурсах самой длл. Только, по-моему, лучше её смотреть не в редакторе ресурсов, а в OleView (File->View Typelib) - он показывает содержимое в виде IDL. Хотя было бы большой беспечностью со стороны разработчиков оставлять tlb для такого интерфейса.
green Оффтоп Разработчики иногда такую безалаберность (или безграмотность) проявляют - хоть падай (хотя для исследователя это большая удача наподобие "ошибки шифровальщика" в криптографии). Мне самому как-то попалась инсталляция одной программы... В общем, после инсталляции в одной из многочисленных созданных ею директорий я случайно обнаружил генератор лицензий.
MoKC0DeR PE Explorer. green Так PEX тоже показывает (только синтаксис Делфи), поэтому я и сказал о редакторе ресурсов, имея ввиду с поддержкой IDL.