2010-04-30 6 views
1

Comment modifier la somme de contrôle d'un binaire?
Spécifiquement, je veux modifier la somme de contrôle intégrée dans un dll/exe.
Y a-t-il des outils disponibles?Modification de la somme de contrôle d'un binaire

+1

Quel genre de binaire? Ce n'est pas clair ce que vous demandez - il y a des éditeurs hexadécimaux qui vous permettront d'éditer un fichier binaire et de modifier n'importe quelle partie des données dans ce que vous voulez. Voulez-vous réellement éditer le binaire lui-même afin qu'une somme de contrôle telle que MD5 calcule différemment, ou voulez-vous modifier une somme de contrôle incorporée sans réellement changer le reste du fichier? Si ce dernier, quel genre de binaire est-ce? Différents formats binaires auront des sommes de contrôle différentes à différents endroits. – Vicky

+0

Je veux éditer la somme de contrôle intégrée dans un dll/exe. – anand

+0

Je ne suis pas certain, mais je pense que Windows vérifie au moment de l'exécution que la somme de contrôle de DLL correspond à ce qu'elle calcule elle-même, et barfs si ce n'est pas le cas. – Vicky

Répondre

0

Vous pouvez utiliser un "éditeur hexadécimal" pour modifier un dll/exe, mais si vous ne savez pas comment inverser le calcul de votre total de contrôle, cela ne vous aidera pas beaucoup.

+0

Je veux juste mettre la somme de contrôle intégrée d'une DLL à 00000000, pas capable de comprendre comment puis-je le faire? – anand

+1

L'essentiel est que vous aurez besoin de plus d'informations que vous nous avez donné sur ce type de somme de contrôle. – NeuroScr

+0

J'ai ajouté des commentaires en question. – anand

0

OK, ce lien vous donne le format de fichier de DLL Windows/Exécutables: http://www.openrce.org/reference_library/files/reference/PE%20Format.pdf

Vous pouvez voir qu'il ya plusieurs palce possibles dans les en-têtes ont été checksums peuvent être stockés, dont certaines sont optionnelles, vous Je dois analyser l'image pour savoir ce qu'il y a dedans. Il existe des outils tels que les parseurs Python PE (google for options) pour vous aider. Une fois que vous savez quels octets vous voulez changer, choisissez un éditeur hexadécimal et faites-le. Vous pouvez même modifier les binaires dans Visual Studio.

[Edit: Mais, comme je l'ai fait remarquer ci-dessus, je pense que Windows peut barf sur elle si elle ne correspond pas à la valeur attendue]

1

Windows nécessite que la somme de contrôle pour être = 0 pour les modules du noyau, vous! n'a pas besoin de le définir pour les modules usermode. Si vous voulez vraiment définir la somme de contrôle, exécutez EDITBIN/RELEASE votreapp.exe ou appelez CheckSumMappedFile(). Voir this article pour une analyse de l'algorithme de somme de contrôle.