Transcrição do áudio
Reconeguinha mais um vídeo aqui no canal IED, vamos lá! Tipos de arquivos no mundo Linux! Bom, ainda bem que eu estou numa máquina de teste, né? Eu nem preciso de abrir uma máquina virtual. Vou mostrar agora, para vocês, algumas definições de tipos de arquivos que temos no mundo Linux. Vamos lá! Bom, o primeiro arquivo que você tem que conhecer são os arquivos regulares. Vou dar o exemplo aqui. Vamos lá! CD, opa! CD barra, por exemplo, barra dev. Ls, traço L, e modo de listagem. Você tem que olhar esse primeiro carácter aqui, ó! Esse primeiro carácter diz para mim o que é esse arquivo nessa linha. Por exemplo, acabei de selecionar um B, porque que eu ri. Eu tenho deslexia, cara, eu não sei a diferença de B e D, mas eu sei que isso aqui é um arquivo de bloco, porque eu conheço Linux, porra! Bom, e eu sei que isso aqui é um diretório, né, pelas cores. Eu tenho deslexia, caramba! Então, a primeira letra é muito importante, tá? Veja, não tem nenhum contrassinho aqui. É um diretório muito peculiar, o nosso amigo barra dev, certo? Então, se você olhar bem, ó, dispositivos especiais de bloco é com B, eu consigo no Linux clicar com o botão direito aqui e colocar no tu, e aí eu consigo trabalhar no texto e manter essa janela ali, certo? Então, ó, dispositivos especiais de carácter, aqui, dispositivos especiais de bloco, que são esses Bs aqui. Cadê, cadê, cadê o... Aqui, ó, aqui, ó, de B recumplicado por um select, o cara. O B tá aqui, certo? Dispositivo especial de bloco. Beleza! Bom, o que que quer dizer isso aqui? Qual a diferença dos dois se você pegar o livro do Thunderbolt? Opa, cara! Sistemos operacionais modernos. Se você pegar esse livro aqui, puta que pariu, a quarta edição tá aqui dando supa no archive.org, hein? Não pode não, hein, coleguinha, isso aí é pirataria. Mas veja que eu nunca cliquei nesse link, hein? Nunca cliquei nesse link, hein? Que fique registrado. Eu acho que a quinta edição é a última, né? Vamos dar uma olhada. Se você pegar esse livro aqui e você for em sistemas... Desculpe, dispositivos especiais de entrada e saída, no caso EES, ele chama, ele vai falar o seguinte, que para um sistema operacional, preste atenção no que eu vou falar, para um sistema operacional só existe a seguinte diferença entre os dispositivos de entrada e saída. Preste atenção, dispositivos de carácter e dispositivos de bloco. Simples. Ou seja, um sistema operacional não teria a capacidade de fazer uma distinção entre o seu teclado e o seu mouse, porque o seu teclado e o seu mouse são, como posso dizer, dispositivos especiais de carácter. Pô, mas como é que ele sabe que esse aqui é o meu teclado e esse aqui é o meu mouse? Por que o dispositivo especial de carácter, quando ele é ligado, ele manda alguns sinais, dizendo o que que ele é? Por isso que você consegue comprar na Digis Park. Você consegue comprar uma Digis Park. Que é isso aqui. E simular um teclado. Você consegue simular esse envio de sinal de teclado e ele passa a ser um teclado. E sim, usamos ele para fazer coisas do mal. Muito fora, né cara? Beleza. Entendeu? Dispositivos especiais de carácter, dispositivos especiais de bloco. É a única distinção que existe dentro dos dispositivos de entrada e saída. Então, todo dispositivo de bloco está aqui com o vizinho. Todo dispositivo de carácter está aqui com o cezinho. Tá, mas qual é a diferença dessa joça? Então, vamos desenhar para você entender. Uau, adoro desenhar, cara. Eu perdi a chance de ser um grande desenhista. Então, imagine que você tem o seu computador. Um cara no trabalho mandou tirar os desenhos escritos. Ai, meu Deus. É assim que eu desenho, coleguinha. Então, olha só. Imagine que eu tenho aqui um dispositivo especial de bloco, outro dispositivo especial de bloco, outro dispositivo especial de bloco. E aqui eu tenho um dispositivo especial de carácter. Certo? Eu vou colocar dentro, tá? Para você ter a noção. Todo mundo sabe que isso aqui é um teclado. Beleza? Bom, e aqui é um dispositivo especial de carácter. Beleza? Quer dizer o seguinte? Que dentro do sistema operacional, eu tenho um read que trabalha apenas com um byte. Eu tenho um write que trabalha com byte. Dentro do sistema operacional, certo? Aqui eu tenho também um read que trabalha com o byte, que merda é essa. Ah, ele recebe o byte e ele preenche o byte. Então, aquele é o ponteiro, né? Vamos colocar assim. Geralmente, a gente retorna o inteiro, né? E o write é diferente do Java, tá? Quem está acostumado com Java é bem diferente. Então, nós só temos read e write. E nós temos um read que ler um byte e nós temos um read que ler um array de bytes. Ah, e isso simplifica todo o processo de desenvolvimento de sistemas. Então, você desenvolva o seu programa. Aqui está o seu programa. Você faz programa. Você é um garoto de programa. Então, você pode trabalhar assim, certo? Passe o endereço adequado que você tem naturalmente o dispositivo de entrada e saída que você está lendo ou escrevendo, certo? Então, você tem essa diferença nos sistemas operacionais. Por isso que há essa distinção entre ambos. Legal? Beleza. Mas eu mostrei mais algumas coisas aqui. Esse direc-tório é peculiar, porque ele é um diretório do tipo que nós mapeamos dispositivos de entrada e saída, por isso que ele é chamado BarraDev de Devices. Tá vendo? Esse aqui tem um L no início ali. Como assim? No mundo Linux, nesse capítulo explico ainda lá no final, existe dois tipos de links. Um link simbólico e um RARD link. Esse cara aqui é um link simbólico. Esse aqui é um link simbólico. Quer dizer que existe um arquivo chamado RTC que aponta para outro arquivo. Isso é o que nós chamamos de link simbólico. RTC é um arquivo pequetinho que aponta para o nosso amigo RTC0, que aqui ele é o arquivo real e que está no mesmo diretório. Está no mesmo diretório. Está aqui ele aqui. Por que eles fazem isso? Por motivo de compatibilidade e evolução de sistemas. Provavelmente no passado, ou algum sistema operacional, provavelmente usava RTC, RTC, RTC e alguém inventou de RTC0, RTC1, RTC2. E aí para manter a compatibilidade, alguém falou, tudo bem. Vamos colocar o RTC0, RTC1, RTC2. E para manter compatibilidade com o legado, criamos o RTC, apontando para RTC0, RTC2. RTC0, RTC1, vai depender. Olha que legal. Isso é comum aqui no Nuro Linux. Só para vocês terem noção, CDLS-L aqui na raiz. Faltou L, né? Aqui. Desculpa, gente. CD barra, LS-L. Aqui. Olha só, vamos dar uma olhada nesse diretório raiz aqui. Olha isso aqui. Lembra que eu falei que é comum? Porque o init-rd ficava na raiz. O Jalvm Linux também ficava na raiz. Só que é escroto você deixar as coisas na raiz. Com o passado tempo Linux evoluiu. E ao evoluir o Linux, eles passaram a organizar melhor, colocaram o init dentro do barra boot e criaram os links simbólicos para que tudo continue funcionando no kernel como foi projetado. Pegaram a visão? Lembra que eu falei que o barra BIM e o SRBIM têm binários? O BIM já não existe mais. Hoje o BIM é um link simbólico para o SRBIM e jogaram tudo lá. Então, eles vão organizando com o passado tempo tudo, vai dando certo usando esses links simbólicos. Depois, acredita-se, espero eu. Ai, vem Deus! E que isso aqui vai ser, como eu posso dizer, com o passado tempo sendo eliminado. Talvez um futuro barra BIM nem exista mais. Seja o SRBIM, que é uma reconstrução para o usuário. Olha que louco. Mas eu não mostrei os arquivos regulares ainda, né? Não mostrei os arquivos regulares. Aqui não tem nenhum arquivo regular contra sim. Eu falei que eu ia mostrar os arquivos regulares, não mostrei, né? CD barra BIM. E aí o CD barra BIM é um link simbólico, ele me mudou lá para o SRBIM. Legal, LES. LES traçuel. Então, vamos lá. Olha o tanto de arquivos regulares. Olha só, são todos... São todos arquivos executáveis. Como eu sei que eles são executáveis? Por esse X aqui, ó. Tá vendo esse X? Esse X diz que esse arquivo pode ser executado. Ah, que legal! Então, um arquivo regular pode ser um executável. Pode ser um arquivo que esteja pronto para ser executado. Tem um VLC aqui, ó, que lá, hora. Dá hora! Bom, deixa eu procurar aqui um mount, tá como uma permissão especial de... Bom, eu vou explicar para vocês as permissões e as permissões especiais. Putz grilo, cara! O sul e o sudo tão vermelho, eu acho isso ridículo, cara. Essa especial é esse que está vendo, gente. Vou explicar isso aqui mais para frente. Ah, tinha um tempinho que eu não vim aqui dar uma olhada como é que... como está a nova versão. Tinha um tempão. Então, são todos os arquivos regulares que estão com o tracinho, certo? Clear, clear. File, VLC. Porque eu não tenho nesse diretório um tal de VLC. Você pode fazer assim. File VLC porque eu tenho VLC no diretório em que eu estou. Ou você pode fazer assim. Barra, bin, barra, VLC. Ou você pode fazer assim que é uma coisa muito comum. Ponto barra que diz da onde eu estou, tenho VLC. Três formas de você colocar ali o caminho. Então, VLC é um binário executável. No mundo Linux, nem tudo é binário. No mundo Linux, no passado, nós tivemos um momento em que foi dado a permissão de criar scripts e customizar Linux baseado em scripts. Porque você escrever um código, transformar ele em binário, é um processo complicado. Então, um script é mais fácil. Qualquer um pode entrar e dar uma manutenção. Lembrando que scripts têm desempenho ruim. Mas o objetivo em sistemas operacionais não é desempenho. O nosso objetivo aqui é sempre fazer dar certo. Fazer funcionar. Essa é jogada. Eu quero ir para casa dormir. Esse é o papo. Se eu tivesse fazendo um website, eu estaria pensando no desempenho. Mas eu não estou fazendo um website. Estou programando sistemas operacionais. E por isso, script são tão requisitados nesse cenário. Nós vamos falar sobre isso mais para frente. E os diretórios. Diretório também é um arquivo. Então, quer dizer que... Então, quer dizer que um arquivo... O diretório é um arquivo, sim. O arquivo é o arquivo. E o diretório também é um arquivo. O seu disco rígido é um arquivo como assim. Volto a entrar no CD barra. Devices. Depois, L, S, L. Agora, tu vai ficar louco, cara. Esse aqui é o meu disco. Esse aqui é o meu disco. É sério. Olha que louco, hein? Esse é meu disco. Como um arquivo. Ele é um arquivo, cara. Aqui estão partições do disco. É colocado como disco aqui. Partições do disco. Que a gente cria. Vai ter um capítulo que eu vou instar isso para vocês. É um arquivo. Você no mundo Windows enxerga diferente esse mundo. Como que você enxerga esse mundo? Você olha para os arquivos e você jura de pé junto que está lá no HD naquela posição, naquela sequência, na isso. No mundo Linux, o sistema de arquivos não está da mesma forma que você enxerga aqui lá no disco. É virtual. Ou seja, o sistema de arquivos do mundo Linux está da memória. Na memória principal. Entende. Por isso, então, que um disco, na verdade, ele é um arquivo. Por isso que a sua memória RAM, suas memórias, elas estão arquivos também. Todo dispositivo de entrada e saída vira um arquivo aqui. Lógico, você não pode interagir com eles assim, porque eles têm uma forma, naturalmente, de se interagir com eles. O USB aqui, o USB como um diretório, se você entrar, você vai começar a encontrar arquivos de USB. Você pode mapear alguns deles, só que tem que ter a manha de mexer com esses arquivos. Não é tão simples assim. Você não vai abrir um editor e vai ver o que está se passando no dispositivo de entrada e saída. É tudo binário e é tudo estrutura de dados envolvido ali dentro, de forma binária, cara. É o capeta, mas é, é da hora. É legal brincar com o capeta. Brincando, senão vou tomar uma ouvidorinha. Tem outros tipos de arquivos também, tá? Arquivos do tipo socket, socket e arquivos de comunicação. Vamos lá. Os dois são de comunicação, tá? É IPC. IPC, se você for no livro do Thunderbolt, vai lá e busca por IPC. Comunicação em ter processos. Há várias formas de fazer uma comunicação entre os processos, tá? Duas delas, sockets e pipes de comunicação. Então vamos lá. Então imagina que eu vou fazer um pipe de Ota aqui, tá? Tá, beleza. Ls traço L, pipe, pipe more. Repare que eu estou pegando a saída desse comando. Preste atenção, estou pegando a saída desse comando e injetando nesse outro comando. Para isso então, todo o output desse cara vai virar um arquivo no sistema e que vai ser injetado em more no descritor de input. Porra, o que é descritor de input? Descritor de input é algo que ensino mais para frente para vocês. É sério? Eu ensino. Tá no livro, se você correr aí você acha agora. Mas eu vou ensinar para vocês. Então nesse momento de injeção é muito rápido. Ele é um arquivo no sistema, o output do Ls. Tá aqui o more. Parou, poderia abrir uma outra tela e sair procurando esse arquivo. Existiria um arquivo do tipo P. Eu vou dar um Q para sair daqui. É um Q para sair do more. Beleza. Então, existe um pipe de comunicação. Legal. Se você também pegar agora, falar sobre sockets, se você pegar no livro de... Se temos operacionas modernas do Thunderbolt e redes de computadores, você vai ver que existe uma possibilidade de comunicação entre processos de computadores diferentes. Então eu tenho o PC1. Se eu estou indo muito rápido, fala aí porque eu vou mais rápido, tá? Eu estou cagando, cara. É paulamáquina, porra. Olha. Então, eu tenho dois processos na máquina e esses dois processos se conversam. Só que eles não se conversam assim, assim, é natural que eles vão se conversar por um negócio chamado network. Uma rede, certo? Então tem todo um para na UE que acontece aqui, que é complexo pra caramba, que você só vai aprender comigo lá em redes de computadores. Mas não adianta pular para lá se você nem sabe o que é um computador. Primeiro você entende que é computador, depois você entende que é uma rede de computadores. Então há uma comunicação aqui pela rede, certo? E tem um monte de para na OISA que tem que ser discutido ainda, e que isso vai criar no sistema operacional, em ambos os computadores, um arquivo do tipo socket, pra essa comunicação. E aqui um arquivo socket pra essa comunicação, certo? Aqui. Vai criar. Legal? Pô, legal. Então quer dizer que os processos executam Read&Write nisso aqui. Preste atenção. Eles executam Read&Write nisso aqui. E isso aqui passa pelos para na OE da placa de rede. Para na OE... A OEA. Isso aí, cara, é Chico Sainz, cara. Pô, antigo pra caramba esse negócio. Então quer dizer que o sistema operacional controla esse arquivo do tipo socket, né? E os processos fazem a leitura escrita do socket, desse arquivo socket. Que existe momentaneamente. Cara, isso é muito dinâmico, cara. Isso é complexo pra caramba. Mexe esses arquivos aí, tá? Todo o hacker tem que ter a manha, tá? Se você quer ser um hacker, você tem que ter a manha. Dá like aí, porra. Vamos lá. Então tá aqui, né? Eu disse que eu tô explicando esses arquivos pra vocês aqui, na forma textual, certo? Beleza. Bom, você também trombou com mais alguns caracteres aqui. Então vamos lá. Clear, certo? Ls, beleza? Aqui estão os meus arquivos. Mas eu não te estou vendo que a permissão. Essa aqui é a visão clássica antiga, lá do início de tudo. Do início de tudo, nós nos contentávamos e vê isso e não tinha cor. Era tudo branco com a mesma fonte. Mas as cores dizem hoje alguma coisa. Por exemplo, azul escuro no débian, estou em um débian, com o ovo na boca. Mas eu não vou falar com o ovo na boca a toda, entendeu? Debião, amarelo, dispositivo de caracter, azul escuro é diretório, azul claro, link simbólico. Verde, alguma coisa executável. Alguma coisa que pode ser um binário ou pode ser um script. Beleza? Olha só. Ls, traço L. Então nós vamos ver os caracteres, conforme eu falei, das permissões e acessos e o que é. E aí tem um monte de coisinha aqui. Então isso aqui é um esquema de permissão de acesso. No mundo Windows é muito complicado. Você tem grupos, você tem grupos e aí o arquivo tem vários grupos. E cara, é muito complicado. No mundo Linux não, no mundo Linux não. É muito simples. Você tem os três primeiros para o dono que criou o arquivo e quem é o dono, o root. Ler, escrever e executar. Ler, escrever e executar. Depois você tem mais três caracteres, que é do grupo dono, ou seja, um arquivo no mundo Linux só pertença a um grupo. Acabou, acabou. Ele é desse grupo e acabou. Não tem que pertencer a outros grupos. Então os três caracteres. Lê, escrever e executar. Traz sim quer dizer que não tem. Então quer dizer que o grupo root, ele pode ler. Não pode escrever e não pode executar. Como assim? O root é o usuário e o root é o grupo. No mundo Linux todo usuário obrigatoriamente tem que ter um grupo de full, que é o que eu vou falar mais para frente. Então meu amiguinho, olha que coisa esquisita. Quando você faz a criação do sistema operacional, criaçãoista de sistema operacional. Foi mal, galera, viajique. Para ele criar o usuário root, ele cria também um grupo root. E aí ele faz a criação de tudo isso, do grupo e do usuário, então ele está no sistema operacional. Olha esse caso aqui. Então, os primeiros três caracteres. É do dono, que é o root. Os próximos três caracteres, é do grupo disk. Então o disk é um grupo. O disk, ou seja, quem estiver no grupo disk pode ler e escrever. Certo? E todos os outros, o que são todos os outros? Os últimos três. Quer dizer, os outros é quem não é o dono e quem não está no grupo disk. São os outros. Nesse caso, não pode ler, não pode escrever e não pode executar nada. Aqui, esse cara. Ah, então esse é o joguinho de letrinhas que nós temos aqui. Beleza? É o esqueminha de letrinhas que temos aqui. Legal. Então a explicação aí. Beleza? Arquivos regulares. Expliquei para vocês. Bom, eu não expliquei para vocês sobre o TF8 e ASCII. E cara, no mundo Linux, durante o processo de instalação, eu pedi você para deixar como o TF8. Esse parana OE foi toda escrita em o TF8. Figura 1.11, cara. Eu não numero figuras, cara. Eu devo estar muito doido quando eu... Eu deveria estar muito doido quando eu escrever essa parte desse texto aqui. Eu acho que eu numerei algumas só, depois eu removi a numeração. Bom, então lá no processo de instalação você teve que definir, eu pedi o TF8. Nada de Unicode. Nem de ASCII 2. ASCII 2 não se usa. Há muito tempo não se usa ASCII 2. Mas Unicode ainda é uma opção. Unicode e o TF8. Vamos lá. Beleza. Eu falei para vocês que nós temos os arquivos executáveis. Mostrei o VLC para vocês. Vou criar um arquivo aqui. Clear. CLR. CLR. CLR. CLR. Você não Windows ou caramba? Estou sendo obrigada a usar Windows. Triste fim. Policar. Aqui. Ó. Touch. Um arquivo idiota.txt. Criei um arquivo idiota.txt. Legal? O legal, ele é essa traçoele. E um arquivo idiota, ele é do tipo... Arquivo regular. Eu posso ler e escrever. O grupo dono do arquivo pode ler e escrever. E todas as outras pessoas do sistema operacional podem apenas ler. Não podem escrever. Eu poderia mudar isso. Lógico. Mas para frente eu mostro os comandos para mudar isso. E esse arquivo é um arquivo regular. Sim. Ele é um arquivo regular de dados. Ele não é um executável. Se eu fizer um script. Um script idiota.sh. O script idiota.sh, ele também é um arquivo regular. E ele também é um arquivo de dados. Ele não é um executável. Tudo bem, mas eu vou chegar aqui em chmod. Mais x1, um script 1. Pô, cara, escreve errado, hein? Ah, mas eu dei permissão de execução. Agora ele tem permissão de execução. Ele tem permissão de execução. Meu amigo, ele é um script. Script não executa. Ele é executado por um interpretador. Que é o barra-beste. Barra-bem-barra-beste. Que é o barra-bim-bar-sh. Barra-srbin-pytontrages. E assim vai. Executável mesmo? Então você pode chegar aqui e fazer o seguinte. File, um script idiota. Ele é um arquivo vazio. Se você chegar aqui e escrever, quem vai executar ele, né? X, coloca uma mensagem. Ele é um script. Texto. Ele não é um binário. Por que que eu estou falando tudo isso? File. Barra-bim-bar-vlc. Esse é um binário. Esse é binário. Ele é um pipe executável. Está preparado aqui para o 68-bar-64. AMD. Certo? É interpretado por essa biblioteca do sistema operacional. Esse cara é dinamicamente linkado. É tudo isso que a gente vai ensinar ainda aqui nesse curso. Beleza? Nesse curso mesmo. Então, veja, é outro tipo de arquivo. Quer dizer que os arquivos regulares são divididos em dois. Arquivos de dados, como esse que tem esse estruturo, o cabeçalho, o modo, com dados do objeto, cabeçalho e assim vai. Multi-parte. Sim, o arquivo é salvo no disco com multi-parte e pedaços. Você não vai encontrar ele todo serializado bonitinho. Isso era o passado, década de 90. Os arquivos não são mais assim há muito tempo. Então, os arquivos de dados estão esses aqui em B, que seriam esses que eu criei aqui. Beleza? Já esse cara aqui é um arquivo executável, que é o tal do VLC aqui, que tem um bit mágico, que é um número mágico, que diz que ele é o executável, e é esse número mágico que informa por sistema operacional se ele é um executável ou se ele é um arquivo de dados. É um número mágico, isso é importante. Tamanho do texto, tamanho dos dados, tamanho dos dados não inicializados, tamanho de tabela de símbolos, pontos de entrada, flags, textos, códigos, dados e escambal A4. Aonde está o código-fonte? Está em texto. Ele chama de texto, sério. Aqui, ó, é o seu código-fonte, beleza? Do seu executável. O que é o ponto de entrada? O ponto de entrada... Deixa eu copiar esse treco aqui. Você vai entender como funciona Mowers. Não fui eu que disse nem não, hein, porra, se você falar para o seu... Para o seu... Ai, professor! Um cara na internet me explica o que dá para fazer Mowers. Dá, meu amigo, dá para fazer Mowers, porra. Aqui tem um endereço de memória. Um endereço de entrada. É um endereço que aqui é 0x... 0,0,0. Aqui é 0x... F,f,f,f,f,f,f,f,f,f,f,f. Tá? Vou ficar contando, não, mas vocês entenderam, né? Endereço invertipolo. Que bicho burro. Invertir, cara, aqui que é o começo e aqui que é o fim, certo? Legal! E aqui no meio... E aqui no meio... Aqui no meio, em algum lugar... Em algum lugar... Algum lugar ali tem o endereço 0... Não é x... 0,0,0,1,f,a,1. Que é o endereço do quê? Que é o endereço da onde foi gerado um assemble e depois uma linguagem de máquina, que foi o seu tal do seu mem. Que é uma função, tá? Lá no meio, essa bosta, seu mem virou assemble, linguagem de máquina, e aí, esse treco tá lá, nesse endereço. Nesse endereço. Os primeiros vírus, como que eles funcionavam? Os primeiros vírus, eles se injetavam aqui no final e pegavam o endereço. 0x, 0,0,2,a,1... Tem, tem, tem, tem, ó. Calca um monte de coisa luga aqui, tá? Não tem S não, tá? Mas foda-se, coloquei. A aula é minha, pô. Porque, cara, é 16, né? É, é que isso é... É hexa, é hexa desse mal pô. Bom, e aí, o que acontece? Originalmente, um programa tem um endereço apontado pra cá, ponto de entrada, certo? Então, o que eles fazem? Os primeiros vírus, eles se injetam lá no fim e trocam esse endereço pra cá. E aí, eles executam e depois chamam esse negócio aqui. Então, eles sempre executam a parte maliciosa dele, depois eles executam o MEN. Então, o seu programa funcionaria como sempre funcionou. Lógico, um pouco mais lento o seu computador, porque agora o seu computador não é mais seu, somente, né? Você tá dividindo o seu computador com o HACK. Ah, seu tuxa! Foi mal, galera. O meu lado HACK falando. Vocês entendem? Então, era assim que acontecia essa jogadinha mágica aqui. O que que passou a ser o mecanismo de defesa? Aí, eu tenho uma assinatura. Uma assinatura, eu tenho uma hash de assinatura na compilação. Certo? E isso, naturalmente, sendo criptografado e assinado digitalmente. Isso ajudou muito, porque agora se qualquer mal, ele tentar injetar alguma coisa nesse executável, vai dar merda, porque o sistema operacional vai verificar isso antes de executar. A assinatura criptografada versus o hash de compilação que tava, versus da compilação versus o hash de agora, se não bater, esse executável foi infectado. E isso, cara, foi realmente top, tá? É que dá um pouco de segurança. Outra forma é fazer como fazemos no mundo Linux. Nós, por exemplo, se você for aqui no GetMoneiro, se você for em download do GetMoneiro, aqui você tem as carteiras para você fazer download, lógico, né? E aí, você tem também, cara... Puts, cara, achar agora vai ser difícil. Tem nele aqui dentro aqui um link, um link que dá hash de cada um desses programas aqui, de compilação, e você pode comparar. Você pode comparar, né? Poxa vida, cara, esqueci. Eu não preparei a aula para mostrar para vocês isso não, beleza? Mas tem, inclusive, eu ensino a fazer isso lá no curso de moneiro. Tem uma URL, um TXT, que tem todas essas hash de compilação, que aí você baixa e verifica. Será que alguém trojanizou? A gente não vamos trojanizar hoje em dia, tá? Mostrei o meu script, pão, aqui script. Ele está marcado como executável. Esse aqui é o executável, aquele é um arquivo de data. Beleza? Bom, legal. Próximo vídeo, nós vamos fazer um programinha chamado Copiar, que é esse programinha aqui. Até lá, até mais. Tchau!