Article View: pl.comp.lang.asm
Article #602Re: Wywołania funkcji...
From: Matuzalem
Date: Wed, 06 Sep 2006 10:34
Date: Wed, 06 Sep 2006 10:34
62 lines
3191 bytes
3191 bytes
Franek B napisał(a):
> > 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
Tak też można, tylko to ma jedną wade... programów już
skompilowanych (do których nie posiada się źrudeł, ta metoda nie
zadziała)
Tak wiem, napisałem: "w naszym programie", czyli, że posiadam
źrudła, no więc ok.
Jest jeszcze jedna wada (właściwie to dwie): program musiałby
jawnie/niejawnie importować bibliotekę - druga - funkcje pozmieniały
by nazwy np. tak jak podałeś na My... (choć to znowu nie taka wada,
ale...)
Pozdrawiam
Technical Details
Message-ID:
<1157538872.050975.16040@m79g2000cwm.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!m79g2000cwm.googlegroups.com!not-for-mailReferences:
<1157021263.450592.112950@m79g2000cwm.googlegroups.com> <edm57b$efb$1@atlantis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!feed.news.interia.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!m79g2000cwm.googlegroups.com!not-for-mail From: "Matuzalem" <codemaster_@op.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Wywołania funkcji... Date: 6 Sep 2006 03:34:32 -0700 Organization: http://groups.google.com Lines: 64 Message-ID: <1157538872.050975.16040@m79g2000cwm.googlegroups.com> References: <1157021263.450592.112950@m79g2000cwm.googlegroups.com> <edm57b$efb$1@atlantis.news.tpi.pl> NNTP-Posting-Host: 212.244.115.33 Mime-Version: 1.0 X-Trace: posting.google.com 1157538877 6649 127.0.0.1 (6 Sep 2006 10:34:37 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Wed, 6 Sep 2006 10:34:37 +0000 (UTC) In-Reply-To: <edm57b$efb$1@atlantis.news.tpi.pl> User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: m79g2000cwm.googlegroups.com; posting-host=212.244.115.33; posting-account=HFFdEQ0AAACI08bdAnMScVqwVEj2ucOg Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit