[ Príspevkov: 48 ] 1, 2
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89 | 89
Napísal autor témyOffline : 04.12.2008 7:00 | aky jazyk

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?


Offline

Užívateľ
Užívateľ
aky jazyk

Registrovaný: 19.09.06
Prihlásený: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 04.12.2008 15:22 | aky jazyk

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


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89 | 89
Napísal autor témyOffline : 04.12.2008 16:52 | aky jazyk

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.


Offline

Užívateľ
Užívateľ
aky jazyk

Registrovaný: 19.09.06
Prihlásený: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 04.12.2008 18:28 | aky jazyk

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/


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89 | 89
Napísal autor témyOffline : 05.12.2008 18:13 | aky jazyk

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


Offline

Užívateľ
Užívateľ
aky jazyk

Registrovaný: 19.09.06
Prihlásený: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 06.12.2008 0:09 | aky jazyk

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89 | 89
Napísal autor témyOffline : 06.12.2008 4:16 | aky jazyk

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.


Offline

Užívateľ
Užívateľ
aky jazyk

Registrovaný: 19.09.06
Prihlásený: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 06.12.2008 12:51 | aky jazyk

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?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89 | 89
Napísal autor témyOffline : 06.12.2008 21:35 | aky jazyk

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,


Offline

Užívateľ
Užívateľ
aky jazyk

Registrovaný: 19.09.06
Prihlásený: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 07.12.2008 0:35 | aky jazyk

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89 | 89
Napísal autor témyOffline : 07.12.2008 10:31 | aky jazyk

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?


Offline

Užívateľ
Užívateľ
aky jazyk

Registrovaný: 19.09.06
Prihlásený: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 07.12.2008 12:37 | aky jazyk

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89 | 89
Napísal autor témyOffline : 07.12.2008 15:52 | aky jazyk

tak daj nieco nejaky sietovy tcp ip program neviem nieco ako telnet alebo daj co mas v zosite nieco daj.
dik.


Offline

Užívateľ
Užívateľ
aky jazyk

Registrovaný: 19.09.06
Prihlásený: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 07.12.2008 21:15 | aky jazyk

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89 | 89
Napísal autor témyOffline : 07.12.2008 23:53 | aky jazyk

co je to %lu a potom tie 13,0, alebo 10 za zatvorkami co to znamena?


Offline

Užívateľ
Užívateľ
aky jazyk

Registrovaný: 19.09.06
Prihlásený: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 08.12.2008 0:03 | aky jazyk

13 10 je koniec riadku a 0 je koniec retazca
%lu Long unsigned integer.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89 | 89
Napísal autor témyOffline : 08.12.2008 19:38 | aky jazyk

stopa27 píše:
13 10 je koniec riadku a 0 je koniec retazca
%lu Long unsigned integer.

a 10 je co?


Offline

Užívateľ
Užívateľ
aky jazyk

Registrovaný: 19.09.06
Prihlásený: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 08.12.2008 20:03 | aky jazyk

13 je navrat na zaciatok riadku a 10 je posun o riadok nizsie (dokopy enter)


 [ Príspevkov: 48 ] 1, 2


aky jazyk



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

aký jazyk?

v Ostatné

2

594

17.01.2010 21:55

Merlin_sk

V tomto fóre nie sú ďalšie neprečítané témy.

Aký programovací jazyk...

v Assembler, C, C++, Pascal, Java

4

567

12.09.2015 11:09

ado130

V tomto fóre nie sú ďalšie neprečítané témy.

aky?jazyk.naPC

v Assembler, C, C++, Pascal, Java

8

949

27.11.2007 18:45

programator

V tomto fóre nie sú ďalšie neprečítané témy.

Aký programovaci jazyk?!

v Ostatné

2

1911

29.10.2018 19:58

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Aky programovaci jazyk

v Ostatné

5

1037

29.05.2011 12:26

mudrnudl

V tomto fóre nie sú ďalšie neprečítané témy.

Aký programovací jazyk

v Assembler, C, C++, Pascal, Java

10

1028

29.10.2019 19:38

m6692

V tomto fóre nie sú ďalšie neprečítané témy.

aky ovladate programovaci jazyk?

[ Choď na stránku:Choď na stránku: 1, 2, 3 ]

v Krčma

76

5967

02.03.2012 13:08

phodinux

V tomto fóre nie sú ďalšie neprečítané témy.

Aky jazyk si mam zvolit?

v Assembler, C, C++, Pascal, Java

8

1458

10.11.2011 18:58

Reverser

V tomto fóre nie sú ďalšie neprečítané témy.

Aký programovací jazyk a ako začať

v Ostatné

10

588

17.12.2013 19:17

likju

V tomto fóre nie sú ďalšie neprečítané témy.

aký jazyk? kde sa najlepšie uplatniť?

v Ostatné

7

940

25.06.2012 20:53

Fico

V tomto fóre nie sú ďalšie neprečítané témy.

jazyk

v PHP, ASP

2

578

29.06.2009 18:20

emer

V tomto fóre nie sú ďalšie neprečítané témy.

jazyk

v Operačné systémy Microsoft

6

643

16.12.2009 17:52

Freelan

V tomto fóre nie sú ďalšie neprečítané témy.

jazyk

v Operačné systémy Microsoft

4

645

24.12.2008 4:55

mithequessir

V tomto fóre nie sú ďalšie neprečítané témy.

jazyk stranky

v PHP, ASP

6

531

16.01.2009 19:59

kaidžas

V tomto fóre nie sú ďalšie neprečítané témy.

jazyk C

v Assembler, C, C++, Pascal, Java

9

1024

10.04.2009 13:19

neutronmind

V tomto fóre nie sú ďalšie neprečítané témy.

Webový jazyk...

v Ostatné

3

803

24.02.2009 17:26

László145



© 2005 - 2024 PCforum, edited by JanoF