begin process at 2010 07 29 15:40:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & cryptage

 > STEGANOGRAPHIE

STEGANOGRAPHIE


 Information sur la source

Note :
Aucune note
Catégorie :Sécurité & cryptage Classé sous :steganographie, cryptage, image, marnage Niveau :Débutant Date de création :04/12/2007 Date de mise à jour :04/12/2007 02:14:02 Vu :3 052

Auteur : Marnage

Ecrire un message privé
Site perso
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

Simple programme en mode console pour cacher du texte dans une image .bmp .
Avec le module PIL , pardonner le manque de commentaire

Source

  • #!/usr/bin/python
  • # -*- coding: iso8859-1 -*-
  • from Image import open,new
  • from sys import argv,exit
  • from os import access,F_OK
  • from string import split
  • def ConstrcutRGB(pixelR,pixelG,pixelB,lenP):
  • i = 0
  • pixel = []
  • while ( i < lenP ):
  • pixel.append((pixelR[i],pixelG[i],pixelB[i])) # (( )) Car on fait une liste de tuple
  • i += 1
  • print ("[*] Rassemble RGB -> liste -> tuple : ok .")
  • return pixel
  • def ConverCharInt():
  • txt = raw_input("Texte -> ")
  • txt += "FiNiEnD"
  • chiffreTexte,i = [],0
  • decimal = []
  • while ( i < len(txt) ):
  • chiffreTexte.append(ord(txt[i])+100)
  • i += 1
  • i = 0
  • i2 = 0
  • while ( i < len(chiffreTexte) ) :
  • i2 = 0
  • buff = str(chiffreTexte[i])
  • while ( i2 < len(buff) ):
  • decimal.append(buff[i2])
  • i2 += 1
  • i += 1
  • return decimal
  • def ModifValeurPixel(pixel,valeur):
  • if ( pixel > 245 ):
  • pixel[i] = 244
  • buff = str(pixel)
  • buff = buff[:len(buff)-1]
  • buff = buff+str(valeur)
  • pixel = buff
  • return pixel
  • def CacheTexte(pixelR,pixelG,pixelB,decimal,lenPixel,size,newImg):
  • i=0
  • i_d=0
  • while ( i < lenPixel ):
  • pixelR[i] = ModifValeurPixel(pixelR[i],decimal[i_d])
  • i_d += 1
  • if ( i_d == len(decimal) ):
  • break
  • pixelG[i] = ModifValeurPixel(pixelG[i],decimal[i_d])
  • i_d += 1
  • if ( i_d == len(decimal) ):
  • break
  • pixelB[i] = ModifValeurPixel(pixelB[i],decimal[i_d])
  • i_d += 1
  • if ( i_d == len(decimal) ):
  • break
  • i += 1
  • print("[*] Modifie valeur : ok ")
  • i = 0
  • while ( i < lenPixel ):
  • pixelR[i] = int(pixelR[i])
  • pixelG[i] = int(pixelG[i])
  • pixelB[i] = int(pixelB[i])
  • i += 1
  • newImage = new('RGB',size)
  • newImage.putdata(ConstrcutRGB(pixelR,pixelG,pixelB,lenPixel))
  • newImage.save(newImg)
  • print ("[*] Image <%s> cree : ok "%(newImg))
  • def RetrouveValeur(pixel):
  • buff = pixel[len(pixel)-1:]
  • return buff
  • def TrouveTexte(pixelR,pixelG,pixelB,lenPixel):
  • decimal = ""
  • i = 0
  • while ( i < lenPixel ):
  • decimal += RetrouveValeur(str(pixelR[i]))
  • decimal += RetrouveValeur(str(pixelG[i]))
  • decimal += RetrouveValeur(str(pixelB[i]))
  • i += 1
  • print ("[*] Decoupe valeur : ok .")
  • decimal = str(decimal)
  • i,compt = 0,0
  • bheu = ""
  • chiffreTxt = []
  • while ( i < len(decimal) ):
  • if ( compt == 3 ):
  • chiffreTxt.append(bheu)
  • bheu = ""
  • compt = 0
  • bheu += decimal[i]
  • i += 1
  • compt += 1
  • i=0
  • txt = ""
  • while ( i < len(chiffreTxt) ):
  • chiffre = int(chiffreTxt[i])
  • chiffre = chiffre - 100
  • txt += chr(chiffre)
  • if ( "FiNiEnD" in txt ):
  • break
  • i += 1
  • print ("Message -> %s"%(txt[:len(txt)-7]))
  • def Acceuil():
  • print """
  • coder par Marnage
  • Programme de steganogrphie ( lib : PIL )
  • Cacher du texte dans une image (.bmp)
  • Argument :
  • -cache = pour cacher du texte dans une nouvelle image
  • -i nomimage.bmp = l image de base ou sera cacher le texte
  • -n newimage.bmp = la nouvelle image qui sera cree avec le texte
  • -trouve = pour retrouver le texte
  • -i = image dans la qu elle chercher le texte
  • """
  • def main(arg):
  • Acceuil()
  • if ( len(arg) != 3 and len(arg) != 5 ):
  • print ("[!] Erreur : argument !")
  • exit()
  • i = 0
  • while ( i < len(arg) ):
  • if ( arg[i] == "cache" ):
  • mode = "cache"
  • elif ( arg[i] == "trouve"):
  • mode = "trouve"
  • elif ( arg[i] == "-i" ):
  • nomImage = arg[i+1]
  • elif ( arg[i] == "-n" ):
  • NI = arg[i+1]
  • i += 1
  • if ( mode != "cache" and mode != "trouve" ):
  • print ("[!] Erreur : argument !")
  • exit()
  • if not ".bmp" in nomImage :
  • print("[!] Erreur : extention image non .bmp !")
  • exit()
  • if ( mode == "cache") :
  • decimal = ConverCharInt()
  • if ( access(nomImage, F_OK) ):
  • image = open(nomImage)
  • size = image.size
  • print ("[*] Access/Ouverture image : ok .")
  • else :
  • print ("[!] Erreur : image innaccesible ! ")
  • exit()
  • pixelColor = list(image.getdata())
  • lenPixel = len(pixelColor)
  • i = 0
  • pixelR = []
  • pixelG = []
  • pixelB = []
  • lenPixel = len(pixelColor)
  • size = image.size
  • while ( i < lenPixel ):
  • iP = 0
  • pixelRGB = pixelColor[i]
  • while ( iP < 3 ):
  • if ( iP == 0 ):
  • pixelR.append(pixelRGB[iP])
  • elif ( iP == 1 ):
  • pixelG.append(pixelRGB[iP])
  • elif ( iP == 2 ):
  • pixelB.append(pixelRGB[iP])
  • iP += 1
  • i += 1
  • print ("[*] Separe RGB liste : ok .")
  • if ( mode == "cache" ):
  • CacheTexte(pixelR,pixelG,pixelB,decimal,lenPixel,size,NI)
  • elif ( mode == "trouve" ):
  • TrouveTexte(pixelR,pixelG,pixelB,lenPixel)
  • if ( __name__ == "__main__" ):
  • main(argv[1:])
#!/usr/bin/python
# -*- coding: iso8859-1 -*-

from Image import open,new
from sys import argv,exit
from os import access,F_OK
from string import split


def ConstrcutRGB(pixelR,pixelG,pixelB,lenP):
	i = 0
	pixel = []
	while ( i < lenP ):
		pixel.append((pixelR[i],pixelG[i],pixelB[i])) # (( )) Car on  fait une liste de tuple
		i += 1
	print ("[*] Rassemble RGB -> liste -> tuple : ok .")
	return pixel

def ConverCharInt():
	txt = raw_input("Texte -> ")
	txt += "FiNiEnD"
	chiffreTexte,i = [],0
	decimal = []
	while ( i < len(txt) ):
		chiffreTexte.append(ord(txt[i])+100)
		i += 1
	i = 0
	i2 = 0
	while ( i < len(chiffreTexte) ) :
		i2 = 0
		buff = str(chiffreTexte[i])
		while ( i2 < len(buff) ):
			decimal.append(buff[i2])
			i2 += 1
		i += 1
	return decimal

def ModifValeurPixel(pixel,valeur):
	if ( pixel > 245 ):
			pixel[i] = 244
	buff = str(pixel)
	buff = buff[:len(buff)-1]
	buff = buff+str(valeur)
	pixel = buff
	return pixel

def CacheTexte(pixelR,pixelG,pixelB,decimal,lenPixel,size,newImg):
	i=0
	i_d=0
	while ( i < lenPixel ):
		pixelR[i] = ModifValeurPixel(pixelR[i],decimal[i_d])
		i_d += 1
		if ( i_d == len(decimal) ):
			break
		pixelG[i] = ModifValeurPixel(pixelG[i],decimal[i_d])
		i_d += 1
		if ( i_d == len(decimal) ):
			break
		pixelB[i] = ModifValeurPixel(pixelB[i],decimal[i_d])
		i_d += 1
		if ( i_d == len(decimal) ):
			break
		i += 1
	print("[*] Modifie valeur : ok ")
	i = 0
	while ( i < lenPixel ):
		pixelR[i] = int(pixelR[i])
		pixelG[i] = int(pixelG[i])
		pixelB[i] = int(pixelB[i])
		i += 1

	newImage = new('RGB',size)
	newImage.putdata(ConstrcutRGB(pixelR,pixelG,pixelB,lenPixel))
	newImage.save(newImg)
	print ("[*] Image <%s> cree : ok "%(newImg))

def RetrouveValeur(pixel):
	buff = pixel[len(pixel)-1:]
	return buff

def TrouveTexte(pixelR,pixelG,pixelB,lenPixel):
	decimal = ""
	i = 0
	while ( i < lenPixel ):
		decimal += RetrouveValeur(str(pixelR[i]))
		decimal += RetrouveValeur(str(pixelG[i]))
		decimal += RetrouveValeur(str(pixelB[i]))
		i += 1
	print ("[*] Decoupe valeur : ok .")
	decimal = str(decimal)
	i,compt = 0,0
	bheu = ""
	chiffreTxt = []
	while ( i < len(decimal) ):
			if ( compt == 3 ):
				chiffreTxt.append(bheu)
				bheu = ""
				compt = 0
			bheu += decimal[i]
			i += 1
			compt += 1	
	i=0
	txt = ""
	while ( i < len(chiffreTxt) ):
		chiffre = int(chiffreTxt[i])
		chiffre = chiffre - 100
		txt += chr(chiffre)
		if ( "FiNiEnD" in txt ):
			break
		i += 1
	print ("Message -> %s"%(txt[:len(txt)-7]))

def Acceuil():
	print """ 
	coder par Marnage
	Programme de steganogrphie ( lib : PIL )
	Cacher du texte dans une image (.bmp)
	
	Argument :
		-cache = pour cacher du texte dans une nouvelle image
		-i nomimage.bmp = l image de base ou sera cacher le texte
		-n newimage.bmp = la nouvelle image qui sera cree avec le texte
		
		-trouve = pour retrouver le texte
		-i = image dans la qu elle chercher le texte
	
	"""

def main(arg):
	Acceuil()
	if ( len(arg) != 3 and len(arg) != 5 ):
		print ("[!] Erreur : argument !")
		exit()
	i = 0
	while ( i < len(arg) ):
		if ( arg[i] == "cache" ):
			mode = "cache"
		elif ( arg[i] == "trouve"):
			mode = "trouve"
		elif ( arg[i] == "-i" ):
			nomImage = arg[i+1]
		elif ( arg[i] == "-n" ):
			NI = arg[i+1]
		i += 1
	if ( mode != "cache" and mode != "trouve" ):
		print ("[!] Erreur : argument !")
		exit()
	if not ".bmp" in nomImage :
		print("[!] Erreur : extention image non .bmp !")
		exit()

	if ( mode == "cache") :
		decimal = ConverCharInt()

	if ( access(nomImage, F_OK) ):
		image = open(nomImage)
		size = image.size
		print ("[*] Access/Ouverture image : ok .")
	else :
		print ("[!] Erreur : image innaccesible ! ")
		exit()
	pixelColor = list(image.getdata())
	lenPixel = len(pixelColor)
	i = 0
	pixelR = []
	pixelG = []
	pixelB = []
	lenPixel = len(pixelColor)
	size = image.size

	while ( i < lenPixel ):
		iP = 0
		pixelRGB = pixelColor[i]
		while ( iP < 3 ):
			if ( iP == 0 ):
				pixelR.append(pixelRGB[iP])
			elif ( iP == 1 ):
				pixelG.append(pixelRGB[iP])
			elif ( iP == 2 ):
				pixelB.append(pixelRGB[iP])
			iP += 1
		i += 1
	print ("[*] Separe RGB liste : ok .")
	
	if ( mode == "cache" ):
		CacheTexte(pixelR,pixelG,pixelB,decimal,lenPixel,size,NI)
	
	elif ( mode == "trouve" ):
		TrouveTexte(pixelR,pixelG,pixelB,lenPixel)


if ( __name__ == "__main__" ):
	main(argv[1:])

 Conclusion

... .


 Historique

04 décembre 2007 02:14:03 :
*

 Sources du même auteur

INCRÉMENTE IP
REMOTESHELL + DOWNLOAD & UPLOAD DE FICHIER
MODULE DE CRYPTOGRAPHIE
ANTI-ROOTKIT

 Sources de la même categorie

Source avec Zip CRYPTEUR CARRE DE POLYBE par Dipx
Source avec une capture HORAIRESRESTREINTS par lonewolfs
Source avec Zip HIDS EN PYTHON par KimbleMandel
CRYPTEUR EN PYTHON par tallgenius
Source avec une capture CRYPTAGE AVEC LE CHIFFRE DE CÉSAR par ara3n

 Sources en rapport avec celle ci

Source avec Zip CRYPTEUR CARRE DE POLYBE par Dipx
Source avec Zip Source avec une capture LES CONTES DE MONTE CRYPTO par amaury74
INCRÉMENTE IP par Marnage
Source avec une capture CRYPTAGE AVEC LE CHIFFRE DE CÉSAR par ara3n
REMOTESHELL + DOWNLOAD & UPLOAD DE FICHIER par Marnage

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Association d'image [ par DoudouBidou ] Bonjour, j'ai une application qui utilise Python (jusque l&#224; tout va bien) et wxPython je voudrais savoir s'il est possible (sans utiliser PIL) d Enregistrer une image [ par misteraoul ] Je suis d&#233;sol&#233; mais je ne trouve nul part comment faire pour enregistrer un caneva sous Tkinter en image bmp Est ce que c'est possible ? S modifier les metadonnées [ par airod ] Je cherche a etre mis sur la voie. Comment peut on editer les champs IPTC (m&#233;tadonn&#233;es) propre a une image? Faut il lire le fichier image c Importer une image dans Tkinter... [ par skools ] Bonjour à tous, Et pardon à ceux à qui j'ai envoyé des messages perso, je n'arrivais pas à poster un suget dans le forum... Voilà, après des heures d Cryptage DES [Python] [ par Kadaj676 ] Bonjour j'aimerais savoir si vous aviez de la documentation sur des algo's de cryptage. Principalement DES, et je voudrais vosu demander, si il est po Cryptage xor [ par sorcier0011 ] Bonjour,J'aimerais bien faire un petit crypteur de texte xor mais je n'arrive pas a trouver comment convertir des lettres en Ascii. Parce que apart fa envoie d image sur le réseau [ par amina22 ] bonjour,je veux savoir si on peut envoyer  des fichiers (audio,vidéo,image..) a travers le réseau en utilisant la communication client/serveur(socket) Créer une image à partir d'un canvas [ par gaulthier ] Salut,comment peut-on créer une image (jpg de préférence) a partir du contenu d'un canvas?J'utilise PIL.Merci d'avance pour vos réponses! Pop-up personnalisé [ par Lacro59 ] Bonjour, En regardant un peu les différentes documentations sur wx.TaskBarIcon et wx.Menu pour la création d'un menu pop-up, je me demandais si :- il Cacher une image [ par akkuciha ] Bonjour à tous, Le but de mon application est de trouver l'image "Question" parmis les images "réponses" possibles.J'ai une zone d'image faite avec gl


Nos sponsors


Sondage...

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales