REVERSE-PRACTICE-BUUCTF-6

rsa

Os arquivos descompactados são .enc e .key. .Enc é o texto cifrado e .key armazena as informações da chave pública.
Use o site online ou openssl para analisar as informações da chave pública armazenadas no arquivo .key para
obter o módulo n e necessário por rsa
rsa-n_e
Use o site online ou yafu para decompor a chave pública e para n, e o resultado são dois grandes números primos.
rsa-break_n
Escreva um script para obter a bandeira
rsa-script

CrackRTF

exe programa, após a execução, ele pede para inserir a senha e sai diretamente sem um shell. Na
função principal da análise ida , a senha deve ser digitada duas vezes. Olhe para a primeira senha
primeiro. A lógica da primeira senha é claro. O foco está na função
CrackRTF-logic1
sub_40100A, sub_40100A Clique na função e descubra que há uma função CryptCreateHash da função
CryptCreateHash. O
importante é que o segundo parâmetro desta função determina o algoritmo de hash a ser usado.
Aqui, 0x8004u usa o algoritmo sha (sha1).
CrackRTF-sub_40100A
Escreva um script para explodir e obter a primeira senha.
CrackRTF-pwd1
Depois, há a segunda senha, que tem a mesma lógica da primeira senha, mas usa o hash md5, mas não impõe nenhuma restrição aos 6 caracteres da segunda senha. A detonação não é aconselhável. Desça e descubra que após a emenda A entrada_2 é passada para a função sub_40100F como um parâmetro
CrackRTF-logic2
. A lógica principal da função sub_40100F é marcada com uma caixa vermelha, ou seja, o recurso "AAA "do programa exe e o input_2 emendado são XORed, e o resultado é escrito no programa criado pelo nome" dbapp "No arquivo .rtf",
use a ferramenta Resource Hacker para obter os dados do recurso "AAA ". A
função sub_401005 é realizar a operação OR exclusiva. O
programa precisa criar e preencher um arquivo rtf completo. O cabeçalho do arquivo rtf é indispensável. Pesquise ou crie um vazio. Abra o arquivo rtf com 010editor, você pode saiba que o cabeçalho do arquivo rtf
é colocado na frente de input_2 quando a segunda senha é emendada, ou seja, o resultado do OR exclusivo da segunda senha e os dados do recurso "AAA" são o cabeçalho do arquivo rtf
CrackRTF-sub_40100F
Escreva o script para obter a segunda senha, o comprimento da segunda senha é 6, de modo que o recurso "AAA" e o cabeçalho do arquivo rtf são ambos XORed com os primeiros 6 bytes para obter a segunda senha. Observe que "\ r" é em python Na semântica de escape, adicione um "\"
CrackRTF-script
para executar o programa exe novamente, insira a primeira e a segunda senhas corretas e gere um arquivo "dbapp.rtf" no diretório atual, o conteúdo é a bandeira
Sinalizador CrackRTF

[2019 Red Hat Cup] easyRE

arquivo elf, sem shell, análise ida. A
função lógica principal não pode ser encontrada na janela de funções à esquerda. Shift + F12 abre a janela de string.
Encontrei uma
easyRE-Strings
string longa que se parece com base64 e a tabela de caracteres de base64 para referência cruzada a string base64 até a função sub_4009C6 Primeiro
observe o fragmento da string base64 usada nesta função. A
lógica é que v56 passa por 10 transformações base64 e o resultado é a string base64 conhecida para
easyRE-debase64
escrever um script para obter v56. o resultado é um url e nenhum conteúdo relacionado à bandeira foi encontrado. Isso deve enganar os jogadores.
easyRE-fake
Continue a olhar para os outros conteúdos da função sub_4009C6. A função atribui valores a um grupo de variáveis ​​no início e então há um OU exclusivo após a operação de comparação. O
easyRE-sub_4009C6
script é marcado com uma caixa vermelha e é avisado que os primeiros quatro caracteres são "Sinalizador", não há prompt para o conteúdo específico do sinalizador
easyRE-script
. Após a função sub_4009C6 ter analisou o conteúdo específico do sinalizador, não há julgamento sobre o conteúdo específico do sinalizador.
Portanto, vá para a janela de string novamente para descobrir se há algum outro conteúdo de prompt.
Abaixo dessa string de strings de base64, há um parágrafo Os dados não usado na função sub_4009C6
easyRE-oculto
referência cruzada vem para a função sub_400D35
v5 e v8 são os mesmos, o resultado do OR exclusivo dos primeiros 4 caracteres da matriz v8 e byte_6CC0A0 é "bandeira", e os primeiros 4 caracteres também são indicados como "sinalizador"
e, em seguida, V8 é então XORed com todos os elementos da matriz byte_6CC0A0 easyRE-sub_400D35
Escreva um script, primeiro resolva v8 e , em seguida, faça um loop XOR para obter sinalizador
easyRE-script

[Concurso ACTF Freshman 2020] easyre

exe program, prompt for input after running, exit diretamente after input error, há upx shell, ida analisa a
lógica da função principal claramente após shelling , o conteúdo do sinalizador é subtraído por 1 como o subscrito e o valor é retirado da matriz de _data_start_ e v4 para comparar com v15, verifique o conteúdo do sinalizador e
easyre-logic
escreva o script reverso para obter o sinalizador
easyre-script

Acho que você gosta

Origin blog.csdn.net/weixin_45582916/article/details/114155800
Recomendado
Clasificación