Article View: pl.comp.lang.asm
Article #601Re: Wywołania funkcji...
From: Franek B
Date: Wed, 06 Sep 2006 09:43
Date: Wed, 06 Sep 2006 09:43
48 lines
2227 bytes
2227 bytes
> W jaki sposób wykryć, czy program wywołał jakąś funkcję ...
Podam przykład w C (Borland C++ 5.5.1). Przetłumacz to sobie na ASM.
1) Utwórz plik definicyjny zawierający funkcje WinAPI,
które chcesz podglądać, np:
; MYIMPORT.DEF
;
LIBRARY kernel32.dll
EXPORTS
MyExitProcess = ExitProcess
MyTerminateProcess = TerminateProcess
2) Utwórz blbliotekę tak przedefiniowanych funkcji:
implib.exe myimport.lib myimport.def
Biblioteka MYIMPORT.LIB zawiera moduły My... udostępniające
publiczne funkcje o takich samych nazwach My...
Moduły zawierają rekordy COMMENT (0x88) Class IMPDEF (0xa0).
Można je utworzyć też innymi metodami, ale wydaje mi się,
że przedstawiony sposób jest najprostszy.
Dołącz bibliotekę jako pierwszą na liście konsolidacji.
3) Podglądaj do woli, np:
#include <windows.h>
// ...
ExitProcess(0);
// ...
WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitProcess(IN UINT uExitCode)
{
extern WINBASEAPI DECLSPEC_NORETURN VOID WINAPI
MyExitProcess(IN UINT uExitCode);
MessageBox(NULL, "A kuku !", "", MB_OK);
MyExitProcess(uExitCode);
}
BTW Próba bezpośredniego użycia pliku MYIMPORT.DEF jako parametru
ilink32 okazała się nieskuteczna (może ktoś wie dlaczego ?)
Pozdrawiam
--
Franciszek Bałaban
Technical Details
Message-ID:
<edm57b$efb$1@atlantis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<1157021263.450592.112950@m79g2000cwm.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: "Franek B" <balabanf@wpREMOVE-ME.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Wywołania funkcji... Date: Wed, 6 Sep 2006 09:43:07 +0000 (UTC) Organization: tp.internet - http://www.tpi.pl/ Lines: 49 Message-ID: <edm57b$efb$1@atlantis.news.tpi.pl> References: <1157021263.450592.112950@m79g2000cwm.googlegroups.com> NNTP-Posting-Host: afy170.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: atlantis.news.tpi.pl 1157535787 14827 83.16.154.170 (6 Sep 2006 09:43:07 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Wed, 6 Sep 2006 09:43:07 +0000 (UTC) X-Newsreader: NNTP Client (Clipper+WatTCP Dot Interpreter) v1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit