🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #601

Re: Wywołania funkcji...

#601
From: Franek B
Date: Wed, 06 Sep 2006 09:43
48 lines
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-mail
References: <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