Jump to content

maycon

Membros
  • Content Count

    8
  • Joined

  • Last visited

Community Reputation

9 Neutral

Recent Profile Visitors

385 profile views
  1. 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
  2. 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
  3. Maycon é Security Exorcist (cremdeuspai) na PRIDE Security, empresa nacional reconhecida por sua qualidade nos serviços prestados na área de segurança. Fundador do projeto Hack N' Roll, Maycon vai falar pra gente sobre engenharia reversa em aplicativos Android! MBCom at Home - Reversing Android Applications.pdf
  4. maycon

    BSides Vitória

    Inspiração, cultura hacker, inovação e criatividade A BSides Vitória é uma confêrencia gratuita sobre segurança da informação, cultura hacker e tecnologia. Fazemos parte do Security BSides, que está presente em mais de 25 países. http://bsides.vix.br/
  5. 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] &l
  6. 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.
  7. 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 ap
  8. 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
×
×
  • Create New...