Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Измерить время выполнения фнукции из DLL

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Взлом программ] >> Измерить время выполнения фнукции из DLL
Имя
Сообщение << Старые топики   Новые топики >>
Измерить время выполнения фнукции из DLL - 2008-12-28 13:36:17.010000   
Kozerog_2

Сообщений: 1
Оценки: 0
Присоединился: 2008-12-27 22:06:34.626666
Есть DLL. Исходников нет. В Far Нахожу в DLL нужную функцию.

Нужно измерить время выполнения этой функции.

Подскажите варианты решения(основное ограничение не замедлять измерениями измеряемое время более 10%):

- модифицировать (вставить вывод в лог) DLL, как ?
- поставить перехватчик  на вызовы этой функции как?
- профилировать выполнение программы как ,
- другие

P.S. Не ругайтесть сильно, я в этом деле новичок. Спасибо.


Post #: 1
RE: Измерить время выполнения фнукции из DLL - 2008-12-28 13:55:23.700000   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
Всё очень просто: пишешь свою программу, в импорт прописываешь нужную тебе библиотеку и функцию, считываешь время, выполняешь функцию, считываешь время. Разница - есть нужный тебе результат.


Post #: 2
RE: Измерить время выполнения фнукции из DLL - 2008-12-28 14:03:09.790000   
fromRIDDER

Сообщений: 1075
Оценки: 30
Присоединился: 2008-01-14 20:20:53.380000
Простенький пример на fasm-е. Если функция будет выполняться >1 сек., то время имзерения составит <1%.

format PE GUI 4.0
entry start

include 'win32a.inc'

section '.text' code readable executable
&nbsp; start:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke&nbsp; GetTickCount
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp;&nbsp;&nbsp;&nbsp; ebx,eax
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke&nbsp; yourFUNC
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke&nbsp; GetTickCount
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sub&nbsp;&nbsp;&nbsp;&nbsp; eax,ebx
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;eax - время выполнения функции
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;здесь написать вывод результата в лог
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke&nbsp; ExitProcess,NULL

section '.idata' import data readable writable

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; library kernel32,'kernel32.dll',\
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yourDLL ,'yourDLL.dll'

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; include 'apia\kernel32.inc'

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; import&nbsp; yourDLL,\
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yourFUNC,'yourFUNC'

Post #: 3
Страниц:  [1]
Все форумы >> [Взлом программ] >> Измерить время выполнения фнукции из DLL







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.