Stránka: 2 z 2
| [ Príspevkov: 48 ] | 1, 2 |
Autor | Správa |
---|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
Kód: .586 .model flat ,stdcall std_output_handle equ -11 EXTERN GetStdHandle@4:near Extern WriteConsoleA@20:near extern ExitProcess@4:near includelib c:\masm32\lib\user32.lib includelib c:\masm32\lib\kernel32.lib
_data segment str1 db "Konzolový program",0 lens dd ? ;lens a res polia datove neurcene vyhradene na zapis sa bude do nich robit res dd ? _data ends _text segment start: push std_output_handle call GetStdHandle@4 ;handle a jeho parameter ako konstanta -11 push offset str1 call lenstr ;lenstr je procedura a volame ju ako api funkciu a ma jeden parameter a to je str1 jeho offset push offset lens push offset res push ebx push offset str1 push eax call WriteConsoleA@20 ;Api WriteConsole (lens res ebx str1 eax ) vypise retazec na obr.parametre push 0 call ExitProcess@4 lenstr proc push ebp mov ebp,esp push eax cld mov edi,dword ptr[ebp+8h] mov ebx,edi mov ecx,100 xor al,al repne scasd sub edi,ebx mov ebx,edi dec ebx pop eax pop ebp ret 4 lenstr endp _text ends end start
Mi to nic nespravilo preslo program ako spustil som to prog1.exe a nic mi to nevypisalo nic len to preslo program a nic ziadni vysledok som nevidel co tam mam dat ako nieco ako getchar cakanie na znak alebo to nejako oneskkoriT neviem co stym a vypisuje to vobec nieco na orb?
obr?
|
|
Registrovaný: 19.09.06 Prihlásený: 19.11.24 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
do includov pridaj Kód: extern CharToOemA@8:near extern AllocConsole@0:near extern FreeConsole@0:near a na zaciatok programu call FreeConsole@0 call AllocConsole@0 a chcelo by to bud nacitavanie alebo zdrzanie pred koniec napr Kód: mov ecx,0ffffffffh loo: loop loo a konzola pouziva ine kodovanie znakov, cize Kód: push offset str1 push offset str1 call CharToOemA@8
na zaciatok pred writeconsole
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
pridaj mi to tam please neviem kde to mam dat daj ze za A: zdrzanie a ze B:nacitanie znaku
Mam IdaPro je to dobry prog? alebo jaky si mam zohnat?
alebo nejaky debuger daj.
|
|
Registrovaný: 19.09.06 Prihlásený: 19.11.24 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
Kód: .586 .model flat ,stdcall std_output_handle equ -11 EXTERN GetStdHandle@4:near Extern WriteConsoleA@20:near extern ExitProcess@4:near extern AllocConsole@0:near extern FreeConsole@0:near extern CharToOemA@8:near extern ReadConsoleA@20:near includelib c:\masm32\lib\user32.lib includelib c:\masm32\lib\kernel32.lib
_data segment str1 db "Konzolový program",0 lens dd ? ;lens a res polia datove neurcene vyhradene na zapis sa bude do nich robit res dd ? _data ends _text segment start: push offset str1 push offset str1 call CharToOemA@8 call FreeConsole@0 call AllocConsole@0 push std_output_handle call GetStdHandle@4 ;handle a jeho parameter ako konstanta -11 push offset str1 call lenstr ;lenstr je procedura a volame ju ako api funkciu a ma jeden parameter a to je str1 jeho offset push offset lens push offset res push ebx push offset str1 push eax call WriteConsoleA@20 ;Api WriteConsole (lens res ebx str1 eax ) vypise retazec na obr.parametre ;A: zdrzanie ;mov ecx,0ffffffffh ;loo: ; loop loo ;B: caka na stlacenie enteru, pricom na konci programu uz je jedno kam sa veci zapisu push offset res push offset lens push 200 push offset str1 push -10 call GetStdHandle@4 push eax call ReadConsoleA@20 push 0 call ExitProcess@4
lenstr proc push ebp mov ebp,esp push eax cld mov edi,dword ptr[ebp+8h] mov ebx,edi mov ecx,100 xor al,al repne scasd sub edi,ebx mov ebx,edi dec ebx pop eax pop ebp ret 4 lenstr endp _text ends end start
a idu nepouzivam, nepacila sa mi a anebola free, pouzivam olly dbg - ma prehladne prostredie, moznost pridanie nespocetneho mnozstva pluginov, je free.
http://www.ollydbg.de/
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
super dal som si to cez enter ide to aj konzola sa mi zobrazi ale naco tam je ta procedura lenstr ved ma vypisat dlzku retazca a nic napise mi len retazec str1 a to vse caka na enter inak v c++ sa daju volat tiez api funkc ie?.tam by to bolo asi jednoduchsie kurna ne?.mam ostat pri assemblery alebo jako neviem teraz asi obidvoje ze
|
|
Registrovaný: 19.09.06 Prihlásený: 19.11.24 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
lenstr je tam preto, ze WriteConsole berie ako jeden z parametrov dlzku vypisovaneho retazca, ak chces vypisat dlzku, musel by si previest dlzku na retazec a potom ho vypisovat. A este raz opakujem, toto nie je ten klasicky assembler, kde mas iba prerusenia a pamet. A ostat ta nikto nenuti, vyber si to co sa ti viac paci, ale programovanie v asembleri ti da odpovede aj na otazky typu "preco
i=0;
printf("%d%d%d",i++,i++,i++);
nevypise 012.", preto si myslim ze by kazdy mal poznat aspon zaklady.
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
stopa daj nejaky priklad este taky kratky nejaky
a co presne robi ta procedura lenstr proc
aky je jej vysledok a kde sa uklada ked sa potom cita ako parameter.
|
|
Registrovaný: 19.09.06 Prihlásený: 19.11.24 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
lenstr vrati dlzku stringu , ktoreho adresa je ulozena v zasobniku na adrese ebp+8h a vrati ju v ebx. Teraz nemam cas robit nejaky priklad, ale mam stare programy na disku na intraku - v nedelu vecer / noci ti sem nieco dam, len napis nieco blizsie aky priklad. Praca s praca s diskom, pamatou, dll?
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
stopa27 píše: lenstr vrati dlzku stringu , ktoreho adresa je ulozena v zasobniku na adrese ebp+8h a vrati ju v ebx. Teraz nemam cas robit nejaky priklad, ale mam stare programy na disku na intraku - v nedelu vecer / noci ti sem nieco dam, len napis nieco blizsie aky priklad. Praca s praca s diskom, pamatou, dll?
A ako vies ze prese ebp+8h teda presne 8h ako vies ze nie 65h preco 8h
ebp je vrchol zasobika to viem ale preco 8h,
|
|
Registrovaný: 19.09.06 Prihlásený: 19.11.24 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
keby si sledoval pozorne debugger, tak nato prides aj sam, ale ked inak nedas :
ako si povedal ebp ukazuje na vrchol zasobniku. Zasobnik "rastie smerom k nizsim adresam" cize na zaciatku je zasobnik povedzme 100, ked das push eax, co je dword, znizi sa vrchol zasobniku o 4,
a teraz preco +8 :
pred volanim funkcie ulozime na vrchol zasobnika adresu retazca a
majme zasobnik a ukazovatel na jeho vrchol, rovnajuci sa 100h
zavolame funkciu call lengthstr, pri jej zavolani sa automaticky ulozi na vrchol zasobnika navratova adresa, ktora je typu dword = 4 byty, cize zasobnik sa znizi o 4 => ukazovatel na vrchol zasobniku je 0FCh
potom v nasej funkcii vykoname push ebp, co nam znizi vrchol zasobniku o dalsie 4 na 0F8h, potom skutocny vrchol zasobnika, ktory je v esp, ulozime do ebp, cize dalsie operacie s zasobnikom sa tejto hodnoty nedotknu.
Dostaneme sa k instrukcii ...[ebp+08h], a kedze medzi push offset retazec a mov ebp,esp sme ulozili dva dwordy na zasobnik, musime k ebp pricitat 8h.
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
a dalo by sa to tak ze aj bez lenstr ze do parametrov za push dam 200 ako velkost retazca a zavolam funkciu?
a nemusim mat lesndtr proc?
aj tak by sa to dalo?
daj nejake "háčkovanie" ak máš alebo šak nikto nevie čo je to "vyšívanie" čo ja viem alebo nejaky jednoduchy keylogger.Aby mal co najmenej riadkov ale aby tam bol vystup napr do suboru.
Napr keby bol ten kéylogger bez konzoly ze by bezal na pozadi a ukladal do suboru tak ako by som ho vypol ze uz nechcem loggovat ctrl alt del a spravca uloh a tam by som ho vypal?
|
|
Registrovaný: 19.09.06 Prihlásený: 19.11.24 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
push 200 mozes dat, ale vypise ti to tvoj retazec a zvysok do 200 doplni medzerami. Keylogger nemam, nemam rad tento druh progamov, aj ked to moze byt z hladiska programovania zaujimave. a ano, program bez konzoly mozes vypnut v spravcovi uloh.
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
tak daj nieco nejaky sietovy tcp ip program neviem nieco ako telnet alebo daj co mas v zosite nieco daj.
dik.
|
|
Registrovaný: 19.09.06 Prihlásený: 19.11.24 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
v akom zosite? a sietovym programovanim sa uz duplom nezaoberam, nebavi ma to. Ale co som tak nasiel nieco zaujimane :
http://www.gymrk.iglu.cz/POWERRC.ASM
http://www.gymrk.iglu.cz/powerrc.RES
toto je na zistovanie stavu baterky v notebooku, s autorefreshom v podobe casovaca. Ale ma to par much, kedze som v case pisania este nemal notebook a testoval som to par minut na sestrinom.
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
co je to %lu a potom tie 13,0, alebo 10 za zatvorkami co to znamena?
|
|
Registrovaný: 19.09.06 Prihlásený: 19.11.24 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
13 10 je koniec riadku a 0 je koniec retazca
%lu Long unsigned integer.
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
stopa27 píše: 13 10 je koniec riadku a 0 je koniec retazca %lu Long unsigned integer.
a 10 je co?
|
|
Registrovaný: 19.09.06 Prihlásený: 19.11.24 Príspevky: 749 Témy: 31 | 31 Bydlisko: Ružomberok&... |
13 je navrat na zaciatok riadku a 10 je posun o riadok nizsie (dokopy enter)
|
|
Stránka: 2 z 2
| [ Príspevkov: 48 ] | 1, 2 |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Ostatné | 2 | 594 | 17.01.2010 21:55 Merlin_sk | | v Assembler, C, C++, Pascal, Java | 4 | 567 | 12.09.2015 11:09 ado130 | | v Assembler, C, C++, Pascal, Java | 8 | 949 | 27.11.2007 18:45 programator | | v Ostatné | 2 | 1911 | 29.10.2018 19:58 BX | | v Ostatné | 5 | 1037 | 29.05.2011 12:26 mudrnudl | | v Assembler, C, C++, Pascal, Java | 10 | 1028 | 29.10.2019 19:38 m6692 | | [ Choď na stránku: 1, 2, 3 ] v Krčma | 76 | 5967 | 02.03.2012 13:08 phodinux | | v Assembler, C, C++, Pascal, Java | 8 | 1458 | 10.11.2011 18:58 Reverser | | v Ostatné | 10 | 588 | 17.12.2013 19:17 likju | | v Ostatné | 7 | 940 | 25.06.2012 20:53 Fico | | v PHP, ASP | 2 | 578 | 29.06.2009 18:20 emer | | v Operačné systémy Microsoft | 6 | 643 | 16.12.2009 17:52 Freelan | | v Operačné systémy Microsoft | 4 | 645 | 24.12.2008 4:55 mithequessir | | v PHP, ASP | 6 | 531 | 16.01.2009 19:59 kaidžas | | v Assembler, C, C++, Pascal, Java | 9 | 1024 | 10.04.2009 13:19 neutronmind | | v Ostatné | 3 | 803 | 24.02.2009 17:26 László145 |
|