ну надо как минимум repе cmpsb. А вообще, у тебя там такой бардак с регистрами, стеком и переходами...
ну я потом приведу к нормальному виду. и repe уменьшает ecx. Что в ecx должно быть NumberOfFunctions? и вообще как правильно организовать цикл поиска имени функции в AddresOfNames?
MaxOn ассемблер тем и отличается от яву, что он крайне неудобен и регистров всегда не хватает. Кроме ECX у тебя еще и edi с esi меняться будут
рррррр не могу въехать. AddressOfNames массив двойных слов где каждый элемент rva на строку с именем функции вот цикл поиска этой строки, что не так здесь Код (Text): mov ebx,[eax.AddressOfNames] mov esi,ebx _find: push ebx add ebx,[KernelBase] mov ecx,11 mov edi,Msg mov esi,ebx repe cmpsb jz _ret pop ebx add ebx,4 jmp _find
теперь у тебя в ebx находится va этого массива с указателями на имена ты просто скопировал адрес массива, а не строки. Тебе нужен первый элемент. Т.е. делаешь так: Код (Text): mov esi,[ebx] add esi,[KernelBase] так ты получишь указатель на первую строку. П.С.: я не помню формат таблицы экспорта и разбираться мне влом. Но, судя по логике твоего кода, делать надо именно так. А вообще, учись пользоваться олькой - в ней можно посмотреть на какие данные указывает регистр и т.д. П.П.С.: имхо ты слишком рано начал заниматься экспортами - там надо еще и с ординалами работать