Você curte Assembly ???

1. Você curte Assembly ???

???
gokernel

(usa Linux Mint)

Enviado em 10/08/2013 - 11:55h

Esse é um pequeno exemplo de um "Interpreter Assembly" (x86) 32 bits ...

http://codepad.org/ZCKzsHvJ

Para testar:
asmi test.asm

test.asm


long count
long var_end

movl $100, count
movl $10, var_end

label_top:

cmpl $129, count
jg label_THE_END

print count
incl count

jmp label_top

label_THE_END:
print var_end





  


2. Re: Você curte Assembly ???

???
gokernel

(usa Linux Mint)

Enviado em 10/08/2013 - 19:08h


BUG encontrado, e já resolvido. ;)



// Linha que resolve o problema:

// 83 c4 08 add $0x8,%esp
//
g(a,0x83); g(a,0xc4); g(a,0x08);

// a funcao correta seria assim:

void _ext_print (ASM *a)
{
int i;

if (lex() == TYPE_VARIABLE && (i=cs_VarFind(token)) != -1)
{
// 8: 83 ec 08 sub $0x8,%esp
g(a,0x83); g(a,0xec); g(a,0x08);

g(a,0xa1); asm_get_addr(a, &var[i].value.i);

// argument 2
//
// 89 44 24 04 mov %eax,0x4(%esp)
//
g(a,0x89); g(a,0x44); g(a,0x24); g(a,0x04);


g(a,0xa1); asm_get_addr(a, &s);

// argument 1:
//
// 89 04 24 mov %eax,(%esp)
//
g(a,0x89); g(a,0x04); g(a,0x24);

// call
// b8 7a 13 40 00 mov $0x40137a,%eax
// ff d0 call *%eax
//
g(a,0xb8); asm_get_addr(a, printf);
g(a,0xff); g(a,0xd0);

// 83 c4 08 add $0x8,%esp
//
g(a,0x83); g(a,0xc4); g(a,0x08);
}
}






3. Re: Você curte Assembly ???

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/08/2013 - 19:19h

Entendo nada de programacao.Me parecem hieroglifos.


4. Re: Você curte Assembly ???

???
gokernel

(usa Linux Mint)

Enviado em 10/08/2013 - 19:59h

@rxvlucas900:
"Entendo nada de programacao.Me parecem hieroglifos."

rasras ;)

E realmente assembly é baixo nível, portanto fica mais difícil de se entender se comparado ao C que é considerada de médio/alto nível.

E só usei opcode assembly porque neste caso era extremamente necessário ...




5. Re: Você curte Assembly ???

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 10/08/2013 - 20:33h

parabéns gokernel, se conhece Assembly, pq é trabalhoso,mas tem vantagem,

é muito rápida,pq práticamente é linguagem de máquina.


6. Re: Você curte Assembly ???

???
gokernel

(usa Linux Mint)

Enviado em 11/08/2013 - 10:29h


Código melhorado e com novo opcode ( sub ):

http://codepad.org/HbfCKL3D




7. Re: Você curte Assembly ???

wellington
wellingtonsr

(usa Slackware)

Enviado em 11/08/2013 - 12:31h

Assembly é meu sonho de consumo rsrsrs. Comprei um livro, mas dei um tempo. Assim que possível volto aos estudos. Tenho interesse em análise de malwares, e assembly é importantíssimo para isso.


8. Re: Você curte Assembly ???

Pedro
px

(usa Debian)

Enviado em 11/08/2013 - 12:55h

wellingtonsr escreveu:

Assembly é meu sonho de consumo rsrsrs. Comprei um livro, mas dei um tempo. Assim que possível volto aos estudos. Tenho interesse em análise de malwares, e assembly é importantíssimo para isso.


Assembly é usado mais para depuração de binários mesmo, ou para inserção de código em um hardware/software específico pois esta linguagem é de baixo nível e faz-se nessesário conhecer também o hardware que a "rodará"
mais é bem prazeroso ler aqueles descritores e adultera-los ou entende-los um pouco rsrs.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts