Jump to content

maycon

Membros
  • Content Count

    8
  • Joined

  • Last visited

Community Reputation

9 Neutral

1 Follower

Recent Profile Visitors

333 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 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. 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] << 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
  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 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.
  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 do Knuth. Lá você terá uma referência sólida e bem matemática sobre esses assuntos. Att, Maycon Vitali
×
×
  • Create New...