SlicK Posted November 3, 2009 Report Posted November 3, 2009 Un mic tool pentru monitorizarea API'urilor apelate de catre un executabil. Permite vizualizarea parametrilor primiti si valorilor returnate. Enjoy...Screen:Download: APIMonitor.zip 1 Quote
Nytro Posted August 17, 2011 Report Posted August 17, 2011 Mai pune un link.PS: O sa te stresez sa imi dai bucati din sursa si am sa iti pun cateva intrebari Quote
cifratorul Posted August 17, 2011 Report Posted August 17, 2011 nu e acelasi lucru cu ce am postat si eu?http://rstcenter.com/forum/37160-api-monitor-2-0-a.rst Quote
Nytro Posted August 17, 2011 Report Posted August 17, 2011 Ba da, e mult mai complex acela si mai sunt si alte solutii, eu cautam pe cineva cu care sa discut astfel de lucruri si acest program e un bun punct de plecare. Quote
gigaevil Posted August 17, 2011 Report Posted August 17, 2011 Posibil a pus un hook pe kernel la functiile care face pipeline si de comunicatie dintre aplicatii. Quote
sulea Posted August 17, 2011 Report Posted August 17, 2011 nytro, nu sunt programator, insa uite cum functioneaza chestiile astea de api hooking:marea majoritate a apiurilor din dll-urile windowsului(cel putin XP) incep prin:mov edi,edipush ebpmov ebp, espwin98 parca avea doarpush ebpmov ebp,espsi poate ca si de aceea api hookurile nu merg pe win98. POATE.in fine,toate 3 instructiunile se intind pe 5 bytes in totalcand se face hooking, aceste 3 instructiuni sunt suprascrise de o apelare a procedurii cu care faci hookul (in care vei spiona parametrii pasati). in acea procedura de hook, dupa ce vei lua parametrii, vei face un apel catre adevaratul API pe care l-a solicitat programul caruia ii faci hook. la intoarcerea din acel API, ai din nou controlul, ceea ce iti permite sa spionezi rezultatul APIului. apoi vei face saritura in codul programului tinta pt a-si continua executia in mod normal.chestia asta cu interceptarea apiurilor se poate face prin injectarea unui dll, care sa faca chestiile alea de le-am, explicat mai sus.debuggerele lucreaza in felul urmator: daca pui un breakpoint pe un API, debuggerul suprascrie prima instructiune a apiului cu int 03, iar cand aceasta instructiune este atinsa, debuggerul opreste aplicatia.deci primele instructiuni din api-uri sunt cele mai tintite de debuggere si hookereo metoda de a trece peste aceste api-hooking este asa-numita 'trambulina'in ce consta:programul nu face apel direct la API, ci va solicita executia codului dupa cele 3 instructiuni de la inceputul apiurilor. cele 3 instructiuni nu sunt neglijate, ele se vor emula in cadrul programului, dupa pasarea parametrilor. apoi se urca pe stiva adresa de intoarcere (care in cazul apelarii apiului direct este urcata implicit), iar apoi se va face saritura la urmatoarele instructiuni din api.uite un exemplu in masm la messagebox: mov eax, MessageBox ; tabela de import mov eax, [eax+2] ; .idata (luam decat adresa, nu si jumpul) mov eax, [eax] ; adresa de start a procedurii messagebox add eax, 5 ; sarim peste primele 3 instructiuni (5 bytes in total) push 0 ;parametrii push offset titlu push offset unhooked push 0 push intoarcerea ;urcam pe stiva adresa unde ne intoarcem dupa apelarea apiului ;mov edi, edi ; emularea primei instructiuni, deoarece nu face nimic o putem ignora push ebp ; emulam a doua instructiune mov ebp, esp ; emulam a treia instructiune jmp eax ; sarim la messagebox+5 (adica apelam messagebox nu de la inceputul ei, ci dupa cele 3 instructiuni de la inceput intoarcerea: ;aici windowsul va reveni dupa ce ne afiseaza mesageboxulam facut si un foarte mic program-test: test.rarincercati sa-i faceti hook la messagebox. puteti incerca cu debuggere sau programuri de genul hooking-testat pe win xp 1 Quote