Pesquisar aqui

sábado, 27 de março de 2021

Crack Hashes explicação (John The Ripper)

Como já falado anteriormente é impossível reverter hashes num espaço de tempo razoável. Então como é que consegui-mos crackear os hashes?
Pensando que sabe-se o algoritmo, de como a palavra foi encriptada, é possível repetir este processo para várias outras strings de informação.  
É com este método que é possível crackear hashes, nós não tentamos reverter o processo, nós repetimos o processo e comparamos as strings resultantes, e se houver um match descobre-se então que string foi encriptada.
Claro que pode-se fazer isto tudo à mão, mas isto diminui muito a produtividade, por isso foram criadas ferramentas para este tipo de trabalhos como o John The Ripper. Que irei dar exemplos e explicar o que esta ferramenta poderosa consegues fazer.


Hashes o que torna-os seguros? (John the Ripper )

Porque utilizar hashes e o que é que os torna seguros?
Os algoritmos de hashes só operam de um lado para o outro, não da para reverter o processo. Ou seja um hash calculado não pode ser revertido, isto é conhecido como um problema matemático chamado: 
Explicando de uma maneira abstrata, o que isto significa é que o algoritmo do hash terá um atributo 'NP', e por isso pode ser calculado facilmente pela maioria dos computadores. Mas fazer um un-hashing de um algoritmo seria um 'P' e significa que não pode ser decifrado por computadores normais, num espaço tempo razoável.
Acho que esta imagem explica o que o P vs NP relationship significa com um exemplo absurdo e exagerado.


Hashes Introdução (John the Ripper)

O que são hashes?
Hashes são maneiras de encriptar dados, pode-se pegar num pedaço de informação e transformá-lo para qualquer tamanho desejável com hashes. Isto é possível realizar através de algoritmos, e há muitos tipos de algorítmos como exemplo: MD4,MD5, SHA1 and NTLM. 
Vou exempleficar este tipo de encriptação com a palavra polo, se transformarmos esta string de 4 carateres por um processo MD5, obtemos o seguinte output: b53759f3ce692de7aff1b5779d3964da. Uma string de 32 carateres.
Mesmo com uma palavra com mais de 6 carateres como polomints, obtemos pelo mesmo processo MD5, uma string de 32 carateres: 584b6e4f4586e136bc280f27f9c64f3b.
A imagem a seguir exemplifica alguns exemplos: 



sexta-feira, 26 de março de 2021

[IDS] GPS: O que é?

O sistema de posicionamento global, mais conhecido pela sigla GPS (em inglês global positioning system), é um sistema de navegação por satélite que fornece a um aparelho receptor móvel a sua posição, assim como o horário, sob quaisquer condições atmosféricas, a qualquer momento e em qualquer lugar na Terra; desde que o receptor se encontre no campo de visão de três satélites GPS (quatro ou mais para precisão maior). Encontram-se em funcionamento dois desses sistemas: o GPS americano e o GLONASS (versão russa do GPS). Existem também dois outros sistemas em implementação: o Galileo da União Europeia e o Compass chinês. O sistema americano é administrado pelo Governo dos Estados Unidos e operado pelo Departamento de Defesa americano. A princípio, o seu uso era exclusivamente militar, estando mais recentemente disponível para uso civil gratuito. No entanto, acredita-se que, em um contexto de guerra, sua função civil seria revogada para que o dispositivo volte a ser um artifício militar. O que comprometeria a funcionalidade do GPS para o cotidiano de pessoas comuns, pois o sistema de posicionamento global, além de ser utilizado na aviação geral e comercial e na navegação marítima, também é utilizado por diversas pessoas para deslocamento nos bairros e cidades e, principalmente, para viagens.

Inclusive, com um sistema de navegação por satélite integrando um GPS, é possível encontrar o caminho para um determinado local e saber a velocidade e direção do seu deslocamento. Atualmente, o sistema está sendo muito utilizado em automóveis com um sistema de mapas. Existem diversos tipos de GPS, de diversas marcas com  soluções "tudo em um", como os externos que são ligados por cabo ou ainda por bluetooth e celulares modernos (smartphones), que possuem o GPS integrado e acessível através de seus próprios aplicativos.

fonte: https://pt.wikipedia.org/wiki/Sistema_de_posicionamento_global

[IDS] C#.NET: Tipos genéricos

Introduzidos pela primeira vez no .NET Framework 2.0, os genéricos são essencialmente um "modelo de código" que permite aos desenvolvedores definir estruturas de dados fortemente tipadas sem se comprometer com um tipo de dados real. Por exemplo, List<T> é uma coleção genérica que pode ser declarada e usada com qualquer tipo, como List<int> , List<string> ou List<Person> .

Para entender por que os genéricos são úteis, vamos dar uma olhada em uma classe específica antes e depois adicionar os genéricos: ArrayList. No .NET Framework 1.0, os elementos ArrayList eram do tipo Object. Qualquer elemento adicionado à coleção foi convertido silenciosamente em um Object . O mesmo ocorreria ao ler elementos da lista. Esse processo é conhecido como conversão boxing e unboxing e afeta o desempenho. 

Além do desempenho, no entanto, não há como determinar o tipo de dados na lista em tempo de compilação, o que torna o código frágil. 

Genéricos resolvem esse problema definindo o tipo de dados que cada instância de lista conterá. Resumindo, você só pode adicionar inteiros a List<int> e só pode adicionar Pessoas a List<Person>.

Os genéricos também estão disponíveis em tempo de execução. O tempo de execução sabe que tipo de estrutura de dados você está usando e pode armazená-la na memória com mais eficiência.

fonte: https://docs.microsoft.com/pt-br/dotnet/standard/generics

[IDS] JSON: O que é?

Em computação, JSON, um acrónimo de JavaScript Object Notation, é um formato compacto, de padrão aberto independente, de troca de dados simples e rápida (parsing) entre sistemas, especificado por Douglas Crockford em 2000, que utiliza texto legível a humanos, no formato atributo-valor (natureza auto-descritiva). Isto é, um modelo de transmissão de informações no formato texto, muito usado em web services que usa transferência de estado representacional (REST) e aplicações AJAX, substituindo o uso do XML. O padrão foi especificado em 2000 e, definido em 2013 nos dois padrões concorrentes, RFC7159 e ECMA-404. Em 2017 a RFC8259 substituiu a 7159 e a ECMA-404 foi revisada.

O JSON é um formato de troca de dados entre sistemas independente de linguagem de programação derivado do JavaScript. Mas a partir de 2017 muitas linguagens de programação incluiram código para gerar, analisar sintaticamente dados em formato JSON e também converter para objetos da linguagem. O tipo de mídia da Internet oficial (MIME) para o JSON é application/jsone nomes de arquivos JSON usam a extensão .json.

fonte: https://pt.wikipedia.org/wiki/JSON

AdWare: Fireball

 O Fireball foi notícia em 2017, quando um estudo encomendado por uma companhia de software israelita descobriu que mais de 250 milhões


de computadores e um quinto das redes empresariais em todo o mundo estavam infetadas por este adware.

Ainda não há provas que este adware faça mais do que sequestrar o browser e inundá-lo com anúncios. Todavia, a preocupação dos especialistas está na possibilidade de a Rafotech decidir lançar um ciberataque usando o Fireball, o que traria consequências devastadoras, tendo apenas em conta o número de sistemas infetados em todo o mundo.


link(https://softwarelab.org/pt/adware/)

Node.Js - aulas youtube

Confira o vídeo da primeira aula do curso de introdução ao JavaScript: 

Node.js 

Com uma playlist completa de 26 vídeos, o curso de introdução ao Node.js aborda aspectos que os usuários precisam saber para utilizar a plataforma, como  servidores da web, microsserviços, interfaces da web e drivers para acesso a banco de dados 

Aspire Global nomeia novo Chefe de Tecnologia

Aditya Bhushan administrará o Departamento de Tecnologia da Aspire Global, incluindo as operações de tecnologia e equipes de desenvolvimento, TI e segurança. Ele traz consigo anos de experiência na construção de produtos, organizações e novos centros de desenvolvimento de sucesso.
O executivo começou sua carreira como desenvolvedor de software na Adobe da Índia e ingressou na NetEnt em 2009. Na NetEnt, ele participou de alguns dos principais desenvolvimentos e arquitetou a plataforma de agregação de conteúdo e o produto de cassino ao vivo, bem como partes importantes da plataforma de cassino da NetEnt. Ele também montou e dirigiu o Centro de Desenvolvimento da NetEnt na Índia. Aditya Bhushan foi nomeado CTO em 2020.
Tsachi Maimon, CEO da Aspire Global, disse: “A tecnologia está no centro do nosso negócio. Ter tecnologia de ponta é um pré-requisito para nosso sucesso contínuo. Estou muito feliz em dar as boas-vindas a Aditya Bhushan na Aspire Global, que trará com ele uma experiência significativa na produção de jogos de caça-níqueis eminentes e plataformas de cassino.”
Ele será fundamental na estruturação de uma organização de tecnologia ágil e escalável em várias jurisdições em todo o mundo, bem como no desenvolvimento das ofertas líderes da Aspire Global para operadoras de iGaming”, acrescentou Maimon.
Aditya Bhushan comentou: “Estou emocionado por ingressar na Aspire Global, que se estabeleceu como uma das empresas mais interessantes na indústria de iGaming. A empresa tem executado consistentemente sua estratégia de crescimento e recentemente fez aquisições estrategicamente importantes que posicionam a Aspire Global como um fornecedor líder de iGaming. Estou feliz por me juntar à Aspire Global e desempenhar um papel na concretização da visão de nos tornar o fornecedor líder mundial de iGaming.”
Aditya Bhushan é bacharel em Física pela Universidade de Delhi e mestre em software. Ele assume o cargo a partir de 1º de julho de 2021.

Epic Games compra empresa de software de captura de ambientes 3D

    A Epic Games anunciou a compra da Capturing Reality, companhia que desenvolve o software homônimo de captura fotorrealista em 3D de ambientes. Com isso, a plataforma deve passar a fazer parte do ecossistema de desenvolvimento da Unreal Engine.
    Em comunicado, a Epic Games informou que o objetivo da negociação é fazer com que a tecnologia fique mais barata e acessível. O programa já é usado para captura de ambientes 3D, os quais podem ser usados como cenários realistas de jogos, animações e filmes.
    Para fazer o serviço ficar mais acessível, a Epic Games informa que o preço do produto vai cair. “Na verdade, a partir de hoje, a Capturing Reality vai reduzir preços para novos e atuais clientes", explica comunicado. 
    O software é usado para reconstrução 3D de objetos e até cenários completos em qualquer tamanho, usando fotos e escaneamento por laser, em um processo chamado de fotogrametria.
    Com a integração do Capturing Reality à Unreal Engine, os desenvolvedores terão facilidade de fazer uploads de imagens e criar modelos 3D dentro do motor gráfico. Entretanto, o comunicado aponta que o software não será exclusivo da Unreal Engine.
    As duas empresas não informarão detalhes da negociação, nem preço de compra.

MOTORES DE JOGO E DESENVOLVIMENTO DE SOFTWARE MERCADO INCLUI TOPO PAÍSES FIGURAS, O CRESCIMENTO DO NEGÓCIO, TAMANHO DO MERCADO, ANÁLISE SWOT, OPORTUNIDADE DE NEGÓCIO, APLICAÇÕES, TENDÊNCIAS E PREVISÃO ATÉ 2024

O relatório Global Motores de jogo e Desenvolvimento de Software Market apresenta uma visão geral abrangente, participações de mercado e oportunidades de crescimento do mercado Motores de jogo e Desenvolvimento de Software por tipo de produto, aplicação, principais fabricantes e principais regiões e países. Este relatório também apresenta o panorama da concorrência de mercado e uma análise detalhada correspondente dos principais fornecedores / fabricantes do mercado. Durante este estudo de pesquisa, os principais participantes da Motores de jogo e Desenvolvimento de Software em várias regiões foram identificados e suas ofertas, presença regional e canais de distribuição foram compreendidos por meio de discussões aprofundadas.
relatório Motores de jogo e Desenvolvimento de Software Mercado fornece uma avaliação detalhada do mercado, destacando informações sobre diferentes aspectos que incluem drivers, restrições, oportunidades, ameaças e mercados globais, incluindo tendências de progresso, análise da paisagem competitiva e regiões-chave de status de expansão. Este relatório é análises numéricas abrangentes da indústria de Motores de jogo e Desenvolvimento de Software e fornece dados para a tomada de estratégias para aumentar o crescimento do mercado e sucesso. O relatório também estima que o tamanho do mercado, preço, receita, margem bruta e Market Share, estrutura de custos e taxa de crescimento para a tomada de decisão.

python-vs-javascript

Como escrever comentários em Python e JavaScript

Os comentários são muito importantes para escrever um código limpo e legível. Vamos ver como você pode usá-los em Python e JavaScript:

Comentários de linha única

  • Em Python , usamos uma hashtag ( #) para escrever um comentário. Todos os caracteres na mesma linha após este símbolo são considerados parte do comentário.
  • Em JavaScript , escrevemos duas barras ( //) para iniciar um comentário de uma única linha.

Este é um exemplo gráfico:

Em Python:

# Comment

Em JavaScript:

// Comment

Comentários multilinhas

  • Em Python , para escrever um comentário de várias linhas, iniciamos cada linha com uma hashtag.
  • Em JavaScript , os comentários de várias linhas começam com a /*e terminam com a */Todos os caracteres entre esses símbolos são considerados parte do comentário.

Em Python:

# Multi-line comment 
# in Python to explain
# the code in detail.

Em JavaScript:

/* 
Multi-line comment 
in JavaScript to explain 
the code in detail.
*/

Estruturas de dados integradas em Python e JavaScript

As estruturas de dados integradas em Python e JavaScript também têm diferenças importantes.

Tuplas

  • Em Python , temos uma estrutura de dados embutida chamada tupla que é muito semelhante a uma lista, mas imutável. Portanto, não pode ser alterado durante a execução do programa, por isso é usado para armazenar dados que não devem ser modificados.
  • Em JavaScript , não existe uma estrutura de dados embutida com essas características. Embora você possa implementar uma estrutura de dados semelhante com certos recursos da linguagem.

Listas vs. Matrizes

  • Em Python, as listas são usadas para armazenar uma sequência de valores na mesma estrutura de dados. Eles podem ser modificados, indexados, divididos e usados ​​no programa.
  • Em JavaScript , uma versão equivalente dessa estrutura de dados é chamada de array .

Isto é um exemplo:

Tabelas de hash

  • Em Python , há uma estrutura de dados interna chamada dicionário que nos ajuda a mapear certos valores para outros valores e criar pares de chave-valor. Isso funciona como uma tabela hash.
  • JavaScript não tem esse tipo de estrutura de dados embutida, mas existem certas maneiras de reproduzir sua funcionalidade com certos elementos da linguagem.

python-vs-javascript


Como definir constantes em JavaScript

Em contraste, em JavaScript, podemos definir constantes que não podem ser alteradas no programa e o identificador de variável não pode ser reatribuído.

Mas isso não significa que o valor em si não possa ser alterado.

De acordo com o artigo constno MDN Web Docs :

const declaração cria uma referência somente leitura para um valor. Isso não significa que o valor que ele contém seja imutável - apenas que o identificador da variável não pode ser reatribuído. Por exemplo, no caso em que o conteúdo é um objeto, isso significa que o conteúdo do objeto (por exemplo, suas propriedades) pode ser alterado.

Para definir uma constante em JavaScript, adicionamos a palavra-chave const antes do nome da variável:

const TAX_RATE_PERCENTAGE = 32;

Se tentarmos alterar o valor da constante, veremos este erro:

Portanto, o valor não pode ser alterado.

💡 Dica: Para executar e testar pequenos trechos de código JavaScript, você pode usar o console nas Ferramentas de desenvolvedor do Chrome .

Tipos de dados e valores em Python e JavaScript

Vamos ver as principais diferenças entre os tipos de dados Python e JavaScript.

Tipos de dados numéricos

Python tem três tipos numéricos para nos ajudar a realizar cálculos precisos para fins científicos. Esses tipos numéricos incluem: int(inteiros),   float(números de ponto flutuante) e complexCada um deles tem suas próprias propriedades, características e aplicações.

Em contraste, o JavaScript tem apenas dois tipos numéricos: NumberBigIntNúmeros inteiros e números de ponto flutuante são considerados do tipo Number.

De acordo com o artigo Number in MDN Web Docs:

Um literal de número, como 37no código JavaScript, é um valor de ponto flutuante, não um número inteiro. Não existe um tipo de número inteiro separado no uso diário comum. (JavaScript agora tem um tipo BigInt , mas não foi projetado para substituir Number para uso diário. 37Ainda é um número, não um BigInt.)

python-vs-javascript

Convenções de nomenclatura de variáveis ​​em Python e JavaScript

Python e JavaScript seguem duas convenções de nomenclatura de variáveis ​​diferentes.

Como nomear variáveis ​​em Python

Em Python, devemos usar o snake_caseestilo de nomenclatura.

De acordo com o Python Style Guide :

Os nomes das variáveis ​​seguem a mesma convenção dos nomes das funções.

Os nomes das funções devem estar em letras minúsculas, com palavras separadas por sublinhados conforme necessário para melhorar a legibilidade.

Portanto, um nome de variável típico em Python seria assim:

first_name

💡 Dica: O guia de estilo também menciona que " mixedCaseé permitido apenas em contextos onde esse já é o estilo predominante, para manter a compatibilidade com versões anteriores."

Como nomear variáveis ​​em JavaScript

Em contraste, devemos usar o lowerCamelCaseestilo de nomenclatura em JavaScript. O nome começa com uma letra minúscula e cada palavra nova começa com uma letra maiúscula.

De acordo com o artigo de diretrizes de JavaScript do MDN Web Docs:

Para nomes de variáveis, use lowerCamelCasing e, quando apropriado, nomes concisos, legíveis e semânticos.

Portanto, um nome de variável típico em JavaScript deve ser assim:

firstName

Constantes em Python e JavaScript

Excelente. Agora que você sabe mais sobre variáveis, vamos falar um pouco sobre constantes. Constantes são valores que não podem ser alterados durante a execução do programa.

Como definir constantes em Python

Em Python, contamos com convenções de nomenclatura para definir constantes porque não há regras rígidas na linguagem para evitar alterações em seus valores.

De acordo com o Python Style Guide :

As constantes são geralmente definidas em um nível de módulo e escritas em letras maiúsculas com sublinhados separando as palavras .

Este é o estilo de nomenclatura que devemos usar para definir uma constante em Python:

CONSTANT_NAME

Por exemplo:

TAX_RATE_PERCENTAGE = 32

💡 Dica: Isso serve como um aviso vermelho para nós e para outros desenvolvedores, indicando que este valor não deve ser modificado no programa. Mas, tecnicamente, o valor ainda pode ser modificado.