ShellCode com chamada de funcao ???

13. Re: ShellCode com chamada de funcao ???

Paulo
paulo1205

(usa Ubuntu)

Enviado em 27/01/2013 - 09:02h

paulo1205 escreveu:

Na linha em que você faz *(long *)p = func;, você assume que o tamanho de um inteiro longo é igual ao tamanho de um ponteiro genérico, e atribui o valor de um ponteiro a um lvalue cujo tipo é long. A assunção não necessariamente é sempre verdadeira, e a confusão com os tipos, que decorre certamente da assunção sobre os tamanhos, é um tipo de coisa temerária que um compilador configurado corretamente não deveria deixar passar sem pelo menos dar uma mensagem de aviso.

Não só filosoficamente, mas até em termos práticos, seria melhor você fazer da seguinte forma: *(void **)p=func;, até porque func já é do tipo void *.


E, obviamente, também as linhas

p+=sizeof(long);
len+=sizeof(long);


deveriam ser trocadas para

p+=sizeof func;
len+=sizeof func;


(sendo p um ponteiro para caracteres).


  


14. Re: ShellCode com chamada de funcao ???

???
gokernel

(usa Linux Mint)

Enviado em 27/01/2013 - 10:17h

@paulo:
"
...
deveriam ser trocadas para

p+=sizeof func;
len+=sizeof func;
"

tamanho em 32 bits(que estou usando):
-------------------------------------------------
*void = 4 bytes.
int = 4 bytes.
long = 4 bytes.
funcao que eh um long = 4 bytes.
-------------------------------------------------

hoje(domingo) estou quebrando a cabeça, ops, digo mim divertindo para tentar fazer os JUMPS CONDICIONAL ( jg, jl, jge, jle ) e CMPL ;)




15. Re: ShellCode com chamada de funcao ???

Paulo
paulo1205

(usa Ubuntu)

Enviado em 27/01/2013 - 17:54h

Pois é. Pode ser tudo igual no seu caso, mas por que não fazer de um modo que vá funcionar amanhã, quando você passar a compilar com 64 bits, ou -- o que é pior ainda -- quando você estiver usando um modelo de memória em que sizeof(void *)!=sizeof(long)?


16. Re: ShellCode com chamada de funcao ???

???
gokernel

(usa Linux Mint)

Enviado em 28/01/2013 - 15:51h

e atualizado aqui sem nenhum aviso de ( WARNING ):
http://codepad.org/8m6ktxjk

OBS: esse programa é um loop eterno ... sair usando CTRL + C , falta fazer os JUMPS CONDICIONAIS .



17. Re: ShellCode com chamada de funcao ???

???
gokernel

(usa Linux Mint)

Enviado em 31/01/2013 - 13:20h


Glória a DEUS \o/ ... depois de muiiiiiitas tentativas, finalmente conseguimos fazer um JUMP CONDICIONAL ( i_cmpl, i_jf ).

codigo funcional aqui:
http://codepad.org/GfS9KD3G

Esse programa da um loop de 100 incrementando( x ) e termina ...

E merece ficar registrado o meu grande agradecimento ao Fabrice Bellard ( code based ).





01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts