Tucao conventionnel sans pwn, essayez inversé
1. whereisflag
elf, pas de shell, ouvrez directement avec ida, recherchez la chaîne pour voir whereisflag, double-cliquez pour suivre pour trouver la fonction clé,
épissez la chaîne pour obtenir le drapeau
CnHongKe {849bc02af213b4d}
2. Inverser1
- Exécutez le programme pour connaître la situation générale
- Programme 32 bits, il y a un shell upx
- Après avoir déballé upx, ouvrez-le avec ida. Selon la chaîne vue à l'exécution,
le pseudo code de la fonction clé ida décompilée est trouvé. Certains endroits ne sont pas compréhensibles.
La logique du problème d' ajustement direct de la fonction d'analyse est: caractère de longueur 11 Chaîne, chaque ascii + 7 dans l'ordre inverse, puis opération XOR avec la chaîne v7 pour obtenir la nouvelle chaîne après ascii-1 de chaque caractère dans l'ordre inverse pour obtenir la valeur
exp dans off_409030 :
a=[0x1E, 0x5D, 0x53, 0x77, 0x5E, 0x50, 0x0E, 0x57, 0x7C, 0x47, 0x07]
#print(a)
str1="%+$-4-8+7=?"
xors=[37 ,43 ,36 ,45 ,52 ,45 ,56 ,43 ,55 ,61 ,63] #str1的ascii码
b=[0,0,0,0,0,0,0,0,0,0,0]
for i in range(11):
a[i]=a[i]+1
#print(a)
for i in range(11):
b[i]=a[i]^xors[i]
#print(b)
for i in range(11):
b[i]=b[i]-7
#print(b)
b.reverse()
print(b)
for i in range(11):
print(chr(b[i]),end="")
#运行结果:0nCl0udNin3
CnHongKe {0nCl0udNin3}