Jump to content

Kevin Almeida

Supporter - Nibble
  • Posts

    6
  • Joined

  • Last visited

  • Days Won

    3

Kevin Almeida last won the day on February 26

Kevin Almeida had the most liked content!

About Kevin Almeida

Kevin Almeida's Achievements

4

Reputation

  1. Estudando assembly como nossos amigos aqui sempre recomendam eu fiquei com uma pulga atras da orelha eu vejo (no meu caso em ARM64) sempre o assembly add ou remover valores do stack pointer, movendo o ponteiro para cima ou para baixo o tempo inteiro mas o que realmente acontece com esses dados? se o ponteiro add valor ao pointer, o ponteiro "desce", mas isso nao deleta automaticamente o valor que estavam contidos nesses endereços anteriores, ne?! isso daria possibilidade de outro programa capturar esses dados em memória (tendo em vista a quantidade de hacks em jogos eu suponho que sim) dando uma pesquisada, eu descobri que o programa reescreve esses dados quando o processo termina, liberando essa memória para que outro processo use e aqui (finalmente) minha duvida: programas que estão o tempo inteiro em execução? servidores web, cron jobs e ate mesmos programas de sistemas operacionais? se um hacker invadir um servidor web, ele consegue capturar dados sensíveis de servidores em memoria e guardar isso para mandar para o atacante? eu trabalho como desenvolvedor web a quase 4 anos, eu nunca vi nenhum esforço para criptografar dados em memória, sempre os olhares estão nos bancos de dados, validações, enfim há, e muito obrigado mais uma vez por tanto conteúdo low level \0
  2. Opa, cara, simplesmente falta de conhecimento enquanto estava estudando como funciona o assembly ARM eu achei varias discussões entre os compiladores clang e o gcc, a propria apple recomenda e tem documentações usando o clang entao fiquei com medo de compilar e ele usar um recurso especifico do compilador X novamente, nao tenho embasamento nenhum sobre isso, to bem no inicio haha, apenas pensei que seria melhor deixar o assembly para compilar com o programa que quiser vou subir um commit com o binario para facilitar a vida da galera e fazer alguns desafios mais divertidos haha
  3. Cá estou eu, 5 anos depois assistindo esse curso MARAVILHOSO virei apoiador e vim aqui agradecer pelo imenso conteúdo tanto do canal quanto deste fórum, vocês sao fodas
  4. Opa galerinha eu senti muita falta nas comunidades uns crackmes para ARM64, precisamente eu achei um unico no site do crackmes e que nao funciona entao eu criei um bem simpleszao https://github.com/The-Kevin/Easy-crackme-arm64-macOS quem tiver iniciando no CERO ou no mundo assembly e quiser brincar um pouquinho, pode ajudar obs: eu testei ele com o lldb, nao consegui fazer um GDB da vida rodar no Mac, mas fica a vontade pra usar o debugger que quiser abraços
  5. Perfeito, assim que retornar ao Brasil, pretendo fazer uma migração para um E-SIM para conseguir rastrear o corno até no inferno
  6. Adorei o artigo, parabéns Somente para complementar, talvez o seu IP não detecte os seus downloads ou ate mesmo mostre outros downloads porque o seu Ip publico mudou, isso ocorre quando o provedor de internet usa um cgNAT na rede e distribui de forma aleatoria os Ips para seus clientes, sempre que houver uma desconexão o IP irá mudar 🙂
  7. Bom, depois de muito tempo eu voltei aqui para dizer que a explicação é a mais simples possível! haha Dentro do objeto Array em javascript temos um atributo chamado length que é incrementado e decrementado conforme utilizamos funções como pop() ou push(), caso o array seja criado vazio, este atributo inicia como zero, se não, ele inicia com o numero de argumentos passados no new Array(), seja ele convertido de um [] ou não. o que eu achei bastante interessante foi saber que para a alocação de memória inicial de um array cada engine de javascript utiliza um método interno próprio de quanta memória alocar, no NodeJs o V8 usa uma estratégia chamada ElementsKind que resumidamente define o tipo de cada elemento e quanto de memória vai ser alocada, e caso o array cresça ele utiliza uma "estratégia de realocação incremental", cria-se um bloco de memória com uma maior capacidade e se copia os elementos para ele, tudo gerenciado pelo engine, claro. e eu pensando que era algum super cálculo complexo 😕
  8. me tirem uma pergunta que ta comendo o meu juizo a uns dias nessa semana, vi o merces falar em uma aula de C que a quantidade de elementos em um array é dada pegando o tamanho do array e divindo pelo tamanho em bytes dos elementos, algo como sizeof(array) / sizeof(typeOfElements), o que faz total sentido, se é um array de inteiros vc sabe que a memoria é alocada de 4 em 4 bytes para cada elemento, mas e no javascript? que a gente consegue fazer uma sopa dentro do array com varios tipos? como eles fazem isso? como que o runtime sabe que aquele byte especifico é um novo elemento e nao a continuacao do anterior? sai internet afora procurando como funciona a estrutura de arrays por baixo dos panos na internet mas sem sucesso alguem sabe algum artigo ou algum material que possa me dar uma luz pra essa questao?
×
×
  • Create New...