Jump to content

maycon

Membros
  • Content Count

    8
  • Joined

  • Last visited

Posts posted by maycon

  1. 11 hours ago, Fernando Mercês said:

    @maycon uma pergunta que resgatamos do chat:

    2.Se o código smali é similar a um disassembly e ele tem equivalentes diretos com o próprio código java, qual a vantagem da existência do código smali?

    De maneira geral: o código assembly é o mnemônico dos opcodes do processador (CPU), assim como o código smali é o mnemônico dos opcodes da máquina virtual Dalvik. Ele não "existe por existir", mas sim é apenas uma representação em um maior nível e abstração em comparação aos opcodes, e em um menor nível de abstração em comparação com a linguagem Java/Kotlin.

    Espero que tenha ficado claro.

    Hack N' Roll

    • Curtir 3
  2. On 4/18/2020 at 3:09 PM, unc4nny said:

    Maycon, eu estava lendo seu blog, e vi que vc falou que seu TCC foi focado em InfoSec. Eu faco C-Comp na UFES tambem e tambem queria que meu TCC fosse nessa area. Eu curto muito a parte de exploracao de binarios e tava pensando que talvez pudesse ser algo sobre isso, eu espero que eu aprenda mto mais coisa ate o final da facul para que eu possa expandir minhas opcoes kkkkk). Vc teria alguma dica mano?

    Olá @unc4nny,

    Primeiramente fico muito feliz por ver mais pessoas aqui do ES se interessando por low-level. \o

    Acredito que dentro da academia o principal para conseguir seguir um TCC/PG que você goste é encontrar desde cedo um bom orientador. Da área de segurança/redes eu conheço e recomendo na UFES do Magnos e o Zégonc (meu orientador do mestrado). Apesar de talvez low-level não ser a área deles, eles podem de dar norte no que diz respeita à metodologia científica, e a parte do projeto em si ficaria por sua conta. Por outro lado, caso você seja uma pessoa realmente esforçada eu te ajudaria com todo prazer a achar um tema e inclusive como co-orientador do seu projeto (acredito que meu grau de MSc me permita isso haha), mas precisamos definir bem como isso seria e se seu orientador aceitaria.

    No mais, esse ano a Hack N' Roll está apoiando o Torneio de Programação de Computadores (Topcom) tanto como patrocinador quanto na elaboração de questões. Caso esse coronga permita que o evento ocorra, eu estarei por lá nessa data, e podemos nos conhecer e conversar pessoalmente.

    No mais, abraços e boa sorte.

    Hack N' Roll

  3. Olá @Baracat,

    Um dica para simplificar o parsing do IP é utilizand o sscanf():

    $ ./ip2int 192.168.0.1
    192.168.0.1 -> 3232235521

    Segue o código:

    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv)
    {
    	if (argc != 2) {
    		printf ("Use: %s <IP>", argv[0]);
    		return 0;
    	}
    
    	unsigned int ip[4];
    
    	if (sscanf(argv[1], "%d.%d.%d.%d", &ip[0], &ip[1], &ip[2], &ip[3]) != 4) {
    		puts ("Invalid IP format (xxx.xxx.xxx.xxx).");
    		return -1;
    	}
    
    	printf ("%s -> %u", argv[1],
    			(ip[0] << 24) +
    			(ip[1] << 16) +
    			(ip[2] << 8) +
    			(ip[3])
    		);
    
    	return 0;
    }

     

    Porém já existem funções espeçificas para fazer o que estamos tentando fazer:

    https://www.tutorialspoint.com/unix_sockets/ip_address_functions.htm

    Abraços

    • l33t 1
  4. Uma outra forma de saber a instrução de um determinado opcode é utilizando o ndisasm:

    $ echo -ne "\xC7\x45\xF0\x61\x00\x00\x00" | ndisasm -b32 -
    00000000  C745F061000000    mov dword [ebp-0x10],0x61

    Abraços.

    • Curtir 2
  5. Olá @Iago Filipe

    A resposta simples seria "Sim", a resposta chata seria "depende".

    O que acontece é que devido as inúmeras proteções tanto em user-space quanto em kernel-space, tirar um RCE (por mais crucial que seja) depende muitas vezes da exploração de mais de uma vulnerabilidade.

    A dois anos atrás eu dei uma palestra em um evento privado (se o @Fernando Mercês não estava bêbado o suficiente ele vai lembrar haha) sobre a solução de um challenge cuja identificação da vulnerabilidade era algo razoavelmente simples, porém a exploração não era [tão] simples devido as proteções aplicadas existentes (PIE, ASLR e DEP). O challenge, slides da palestra e p0c (exploit) podem ser encontrados aqui.

    Caso tenha alguma dúvida estamos aqui pra ajudar. (-:

    Abaços.

    • Curtir 1
    • Haha 1
  6. Olá Matheus,

    Existem algoritmos para geração de permutação baseados em heap sem esse critério de ter que varrer toda sequência e validar o que faz parte da permutação ou não. O próprio Python possui essa implementação no itertools.permutation(), além do próprio std::next_permutation() da STL do C++.

    Com relação a geração da enézima (nth) permutação, também é possível encontrar algumas soluções para isso. Um exemplo pode ser visto aqui. Para outras soluções basta procurar por "nth/kth permutation algorithm" ou similar.

    Uma boa referência para se aprofundar nisso é o TAOCP Vol. 3 do Knuth. Lá você terá uma referência sólida e bem matemática sobre esses assuntos.

    Att,
    Maycon Vitali

    • Curtir 1
×
×
  • Create New...