Non Vérifié Décrypter encodage tbl [Gmod] [Backdoor]

jeanBNV

Membre 🏅
Level 2

Torrents Stats

Messages
4
J'aime
0
Trophées
29
Inscrit
5 Mai 2020
Vous avez sans doute déjà rencontré ce genre de backdoor :


1592576834869.png

nous allons ici décoder la table : enccodetbl


En étudiant le code on peut remarquer que tout est dans une "boucle for" qui prend comme variable d'incrémentation "o" comprit entre 500 et 10000
dont dépend le décodage:

for r=1,#enccodetbl do
pdata=pdata.. string.char(bit.bxor(enccodetbl[r], o%150))​
end


Pour décoder ceci, nous avons deux possibilités. Soit on brut force pour tenter de trouver le code ou alors on étudie le code pour trouver la valeur de "o"
Dans ce premier tuto on va utilisé la technique du brute force (bien gourmand en ressource).

Donc on sait que "o" (qui est entre guillemet notre clef de décryptage) est un nombre compris entre 500 et 10000
On a plus qu'à écrire un script pour tenter de trouver le bon code.

on va donc commencer par faire une boucle for allant de 500 à 10000:

for o=500,10000 do
end

on va y mettre ensuite le script de décryptage

for o=500,10000 do
pdata = ""
for r=1,#enccodetbl do
pdata = pdata.. string.char(bit.bxor(enccodetbl[r], o%150))​
end
end

On a donc ici pour chaque tour un résultat de décryptage.
On ne va pas tous les enregistrer. On va faire donc un trie grâce à des mots clefs (vous pouvez en ajouter plus si cela vous chante) présents dans la plupart des backdoors:

resultat = ""
for o=500,10000 do
pdata = ""
for r =1,#enccodetbl do
pdata = pdata.. string.char(bit.bxor(enccodetbl[r], o%150))​
end

if pdata:find("https://") or pdata:find("RunString") then
resultat = resultat.."\n".. o .. "\n------------------------" .. pdata​
file.Write("backdoor.txt",resultat)​
end
end

Et voila à chaque fois qu'il y aura un de vos mots clef dans le résultat, le résultat sera ajouté au fichier backdoor.txt qui ce trouve dans le dossier DATA du jeu

J’espère que cela vous aura aidé si vous avez des question faites en part en commentant.
Je ferais probablement un décorticage plus approfondit si cela vous intéresse.
 

jeanBNV

Membre 🏅
Level 2

Torrents Stats

Messages
4
J'aime
0
Trophées
29
Inscrit
5 Mai 2020
vous pouvez créer une commande console en plaçant ce code dans un fichier dans lua/autorun/server/exemple.lua


concommand.Add( "decode", function()

resultat = ""
for o = 500, 10000 do
pdata = ""
for r=1,#enccodetbl do
pdata=pdata.. string.char(bit.bxor(enccodetbl[r], o%150))​
end
if pdata:find("https://") or pdata:find("RunString") then
resultat = resultat.."\n".. o .. "\n------------------------" .. pdata​
file.Write("backdoor.txt",resultat)​
end
end

end)
 
Haut Bas