Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kakav glup problem!!!

[es] :: Zaštita :: Kakav glup problem!!!

[ Pregleda: 2240 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ramirez

Član broj: 13160
Poruke: 318
*.39.EUnet.yu



Profil

icon Kakav glup problem!!!15.07.2004. u 16:41 - pre 239 meseci
Petlja generise po jednu HEX vrednost ASCII broja i smesta je "negde" (u mom slucaju szTEMP) a onda taj generisani string treba da se ispise (ali unazad, mada to nisam pokusao). Ovo sam napisao:


o_frmt1 db '%S',0
szTEMP db ?


MOV EDI,offset szTEMP
DEC EDI
GO:
INC EDI
XOR EDX,EDX
DIV ECX
ADD DL,030h
CMP DL,03Ah
JB SKIP
ADD DL,07h
SKIP:
MOV [EDI],DL
OR EAX,EAX
JNZ GO
MOV EDI,offset szTEMP
PUSH EDI
PUSH offset o_frmt1
PUSH offset sznumber1
CALL wsprintf

Ustvari cifre se generisu unazad sto znaci da prva cifra koja se generise predstavlja poslednju cifru u stringu, ali ja ne znam kako to da uradim posto ni ovo nece da radi. Nemam pojma koje duzine ce string biti pa sam zato promenljivu definisao kao "db ?" (valjda tako treba?).
 
Odgovor na temu

Ramirez

Član broj: 13160
Poruke: 318
*.114.EUnet.yu



Profil

icon Re: Kakav glup problem!!!18.07.2004. u 08:55 - pre 239 meseci
Problem je u tome sto sam ja probao sve sto mi je palo na pamet.... i nisam uspeo... Naravno da sam pokusao da debugujem. I sve radi.... mislim generise se pravi broj i upisuje se u EDI ali kada uradim PUSH EDI (pre wsprintf) on ispisuje gomilu gluposti kao: ??????2 ili tako nesto????
 
Odgovor na temu

b4d_s3c70r
0x0000DEAD

Član broj: 6244
Poruke: 239
*.rcub.bg.ac.yu

Sajt: www.lomonline.net


Profil

icon Re: Kakav glup problem!!!18.07.2004. u 09:31 - pre 239 meseci
Znači tvoje patlja lepo radi ali ne ispisuje sve kako treba? Aham. E pa gde je onda greška? U pozivu wsprintf funcije. Uzmi neki help i pogledaz kako se poziva. Kolko vidim ti si skroz promašio format. Zar %S nije string? Tebi treba hex zar ne? To je valjda %x, možda %h. Proveri. Stoji ti sve pred nosim bre...
 
Odgovor na temu

Ramirez

Član broj: 13160
Poruke: 318
*.245.EUnet.yu



Profil

icon Re: Kakav glup problem!!!18.07.2004. u 12:33 - pre 239 meseci
mora da bude o_frmt1 db '%hS',0
i onda radi ali sada imam drugi problem:
ispisjuje mi neke gluposti posle stringa... tj on sve to vidi kao string? zasto kada sam ga ja definisao kao db ? (valjda mu to govori da se ne zna koliko ima vrednosti) on odmah stavi da je string 15 karaktera (ovo sam lupio)... i onda ispise moj broj od 6 a ostala mesta su neki sadrzaj memorije:

7816308ps_class32
 
Odgovor na temu

b4d_s3c70r
0x0000DEAD

Član broj: 6244
Poruke: 239
*.skydsl.de.

Sajt: www.lomonline.net


Profil

icon Re: Kakav glup problem!!!18.07.2004. u 20:06 - pre 239 meseci
Pa dobro. Polako :) Eto jednu stvar smo nasli koju si progresio. Ja ti vec par puta rekoh da ne znam taj asm al za tolko sam se snalazio. Nemoj da stavljas ? Bolje rezervisi 100 bajtova. To ce ti biti dovoljno a znas da si ih rezervisao. Nisam cak ni siguran cemu ? sluzi... najbolje ti je da pitas Mikkya :)
 
Odgovor na temu

Mikky

Član broj: 18
Poruke: 1563
*.vdial.verat.net

ICQ: 44582291


+58 Profil

icon Re: Kakav glup problem!!!19.07.2004. u 00:35 - pre 239 meseci
Ajd da probam da pomognem kad me vec proziva ovaj sekt0r :)

Prvo da ti kazem da ja tvoj kod nista ne razumem a iskreno nisam se ni trudio mnogo,
dosta mi je mog sto ga gledam svaki dan :)
Sto se tice tvog problema, evo kako da sprecis da ti wsprintf ispisuje gluposti
ispod szTEMP db ? dodaj db 0, znaci
Code:

o_frmt1 db '%S',0
szTEMP db ?
db 0

Svi stringovi mora da se zavrsavaju sa znakom NULL tj NULA tj 0. Kod tebe nema nule
pa funkcija cita neku tamo memoriju sve dok ne naidje do tog znaka i zato ti izbacuje djubre.
Inace ako oces string (niz bajtova) uvek definisi ovako
Code:

szString db 128 dup(?)

gde je szString niz od 128 bajtova u koga mozes da smestis max 127 karaktera + NULL na kraju.

Jos jedan detalj, wsprinf() je funkcija koja koristi C konvenciju pozivanja, to znaci
da parametre sa steka moras ti da obrises posle poziva, znaci dodaj poslednju liniju
Code:

PUSH EDI
PUSH offset o_frmt1
PUSH offset sznumber1
CALL wsprintf
add esp,3*4    ; cisti stek, 3 parametrba puta 4 bajta svaki

inace ce program da ti crashuje pre ili kasnije (verovatno pre)

I zapamti:
Pravlio broj 1. kad nesto neide, uvek prvo pogledaj dokumentaciju
Pravilo broj 2. ako i dalje neide, pogledaj opet malo bolje dokumentaciju.

-I know UNIX, PASCAL, C, FORTRAN,
COBOL, and nineteen other high-tech
words.
 
Odgovor na temu

Ramirez

Član broj: 13160
Poruke: 318
*.156.eunet.yu



Profil

icon Re: Kakav glup problem!!!19.07.2004. u 09:38 - pre 239 meseci
TOOOOO .....

Mnogo si mi pomogao.... HVALA.

Ja sam ga naterao da radi na neki svoj nacin, ali ovo sto si napisao mi je bas razjasnilo stvari. To mi je trebalo. HVALA
 
Odgovor na temu

[es] :: Zaštita :: Kakav glup problem!!!

[ Pregleda: 2240 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.