Определяются все функции в библиотеке. Code: opredelenie_ proc invoke _lopen, addr prFile, OF_WRITE ;открытие файла mov cmd1,eax .IF eax == -1 invoke _lcreat, addr prFile, 0 mov cmd1,eax .ELSE invoke _llseek, cmd1, 0, FILE_END .ENDIF invoke LoadLibraryA,offset lib_ ; подгрузка либы в адресное пространство процесса mov adr_,eax .if eax==0 jmp ret_ .endif Find_proc: mov edi,eax mov eax,dword ptr [edi+3Ch] ; PE mov ebx,eax mov ebp,edi mov edx,dword ptr [ebp+eax+78h] ; смещаемся на таблицу экспорта add edx,ebp mov ecx,dword ptr [edx+18h] ; число функций mov ebx,dword ptr [edx+20h] ; экспортируемые имена add ebx,ebp ; таблица экспортируемых имен funk_loo: jecxz exit_ ; если функции кончились - выходим dec ecx ; уменьшаем счетчик функций xor esi,esi mov esi,dword ptr [ebx+ecx*4h] ; конец массива эксп. функций add esi,ebp ; адрес конца массива xor edi,edi cld pusha mov addres_,esi .IF cmd1 != -1 invoke lstrlen,addres_ ; получаем длину строки с именем функции invoke _lwrite, cmd1, addres_, eax ; записываем имя функции в файл invoke _lwrite, cmd1,offset flash_,3 .endif popad loo_: xor eax,eax lodsb ; чтение следующего символа имени функции cmp al,ah ; конец строки? je _next_ ; если конец - записываем имя функции в файл jmp loo_ _next_: jmp funk_loo exit_: invoke _lclose, cmd1 ; закрытие ret_: ret opredelenie_ endp Результат работы выводится в файл