Apprendre le Hack Index du Forum
Apprendre le Hack

 
Apprendre le Hack Index du ForumFAQRechercherS’enregistrerConnexion

:: Alien's Icon Changer ::

 
Poster un nouveau sujet   Répondre au sujet    Apprendre le Hack Index du Forum -> A trié
Sujet précédent :: Sujet suivant  
Auteur Message
Inf3rnus
Administrateur

Hors ligne

Inscrit le: 22 Aoû 2011
Messages: 196

MessagePosté le: Dim 11 Déc - 17:05 (2011)    Sujet du message: Alien's Icon Changer Répondre en citant

Pour faire cet Icon changer j'ai modifié une source qui marche très bien que j'ai trouvé sur piratologie.
Lien : http://piratologie.org/printthread.php?tid=1215&page=1

je lui ai rajouter le déplacement de la fenêtre au clic et un effet à la fermeture.
Bref pas de quoi révolutionner le monde.

Pour faire cet Icon changer il vous faut:

- 2 TextBox
- 3 button (Browse File - Browse Icon - Chance Icon)
- 1 OpenFiledialog ( Name = ofd1) "je n'ai pas changer le nom d'origine de la source vu que je n'ai pratiquement pas toucher au code vu qu'il est difficile de l'améliorer."




Code source de la Form1



  1. Imports System.IO  
  2. Public Class Form1  
  3.     Private Const AW_BLEND = &H80000  
  4.     Private Declare Function AnimateWindow Lib "user32" (ByVal hwnd As Int32, ByVal dwTime As Int32, ByVal dwFlags As Int32) As Boolean  
  5.     Dim winHide As Integer = &H10000  
  6.     Dim winBlend As Integer = &H80000  
  7.     Dim fichier, icone As String  
  8.     Dim mouse_offset  
  9.     Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown  
  10.         mouse_offset = New Point(-e.X, -e.Y)  
  11.     End Sub  
  12.   
  13.     Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove  
  14.         If e.Button = Windows.Forms.MouseButtons.Left Then  
  15.             Dim mousePos As Point = Control.MousePosition  
  16.             mousePos.Offset(mouse_offset.X, mouse_offset.Y)  
  17.             Location = mousePos  
  18.         End If  
  19.     End Sub  
  20.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
  21.         With ofd1 ' c'est l'openfiledialog  
  22.             .FileName = ""  
  23.             .Filter = "Executable (*.exe)|*.exe"  
  24.             .Title = "Browse..."  
  25.             .ShowDialog()  
  26.             TextBox1.Text = .FileName  
  27.         End With  
  28.     End Sub  
  29.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click  
  30.         With ofd1 ' c'est l'openfiledialog  
  31.             .FileName = ""  
  32.             .Filter = "Icon (*.ico)|*.ico"  
  33.             .Title = "Browse..."  
  34.             .ShowDialog()  
  35.             TextBox2.Text = .FileName  
  36.         End With  
  37.     End Sub  
  38.     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click  
  39.         If TextBox1.Text = "" Then  
  40.         MsgBox("Veuillez choisir un fichier")  
  41.         End If  
  42.         If TextBox2.Text = "" Then  
  43.         MsgBox("Veuillez choisir une icône")  
  44.         Else  
  45.         fichier = TextBox1.Text  
  46.         icone = TextBox2.Text  
  47.         IconInjector.InjectIcon(fichier, icone)  
  48.         MsgBox("L'icone à bien été changé !", MsgBoxStyle.OkOnly, "Réussi!")  
  49.         TextBox1.Clear()  
  50.         TextBox2.Clear()  
  51.     End Sub  
  52.   
  53.     Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click  
  54.         AnimateWindow(Me.Handle.ToInt32, CInt(1500), winHide Or winBlend)  
  55.         Me.Close()  
  56.     End Sub  
  57. End Class  







Pour ajouter une classe faite comme sur la capture.




Code source de la class



  1. Imports System.Runtime.InteropServices  
  2. Imports System.Security  
  3. Public Class IconInjector  
  4.   
  5.     <SuppressUnmanagedCodeSecurity> _  
  6.     Private Class NativeMethods  
  7.         <DllImport> _  
  8.         Public Shared Function BeginUpdateResource( _  
  9.             ByVal fileName As String, _  
  10.             <MarshalAs> ByVal deleteExistingResources As Boolean) As IntPtr  
  11.         End Function  
  12.   
  13.         <DllImport> _  
  14.         Public Shared Function UpdateResource( _  
  15.             ByVal hUpdate As IntPtr, _  
  16.             ByVal type As IntPtr, _  
  17.             ByVal name As IntPtr, _  
  18.             ByVal language As Short, _  
  19.             <MarshalAs> _  
  20.             ByVal data() As Byte, _  
  21.             ByVal dataSize As Integer) As <MarshalAs> Boolean  
  22.         End Function  
  23.   
  24.         <DllImport> _  
  25.         Public Shared Function EndUpdateResource( _  
  26.             ByVal hUpdate As IntPtr, _  
  27.             <MarshalAs> ByVal discard As Boolean) As <MarshalAs> Boolean  
  28.         End Function  
  29.     End Class  
  30.     <StructLayout> _  
  31.     Private Structure ICONDIR  
  32.         Public Reserved As UShort  
  33.         Public Type As UShort  
  34.         Public Count As UShort  
  35.     End Structure  
  36.     <StructLayout> _  
  37.     Private Structure ICONDIRENTRY  
  38.         Public Width As Byte  
  39.         Public Height As Byte  
  40.         Public ColorCount As Byte  
  41.         Public Reserved As Byte  
  42.         Public Planes As UShort  
  43.         Public BitCount As UShort  
  44.         Public BytesInRes As Integer  
  45.         Public ImageOffset As Integer  
  46.     End Structure  
  47.     <StructLayout> _  
  48.     Private Structure BITMAPINFOHEADER  
  49.         Public Size As UInteger  
  50.         Public Width As Integer  
  51.         Public Height As Integer  
  52.         Public Planes As UShort  
  53.         Public BitCount As UShort  
  54.         Public Compression As UInteger  
  55.         Public SizeImage As UInteger  
  56.         Public XPelsPerMeter As Integer  
  57.         Public YPelsPerMeter As Integer  
  58.         Public ClrUsed As UInteger  
  59.         Public ClrImportant As UInteger  
  60.     End Structure  
  61.   
  62.     <StructLayout> _  
  63.     Private Structure GRPICONDIRENTRY  
  64.         Public Width As Byte  
  65.         Public Height As Byte  
  66.         Public ColorCount As Byte  
  67.         Public Reserved As Byte  
  68.         Public Planes As UShort  
  69.         Public BitCount As UShort  
  70.         Public BytesInRes As Integer  
  71.         Public ID As UShort  
  72.     End Structure  
  73.   
  74.     Public Shared Sub InjectIcon(ByVal exeFileName As String, ByVal iconFileName As String)  
  75.         InjectIcon(exeFileName, iconFileName, 1, 1)  
  76.     End Sub  
  77.   
  78.     Public Shared Sub InjectIcon(ByVal exeFileName As String, ByVal iconFileName As String, ByVal iconGroupID As UInteger, ByVal iconBaseID As UInteger)  
  79.         Const RT_ICON = 3UI  
  80.         Const RT_GROUP_ICON = 14UI  
  81.         Dim iconFile As IconFile = iconFile.FromFile(iconFileName)  
  82.         Dim hUpdate = NativeMethods.BeginUpdateResource(exeFileName, False)  
  83.         Dim data = iconFile.CreateIconGroupData(iconBaseID)  
  84.         NativeMethods.UpdateResource(hUpdate, New IntPtr(RT_GROUP_ICON), New IntPtr(iconGroupID), 0, data, data.Length)  
  85.         For i = 0 To iconFile.ImageCount - 1  
  86.             Dim image = iconFile.ImageData(i)  
  87.             NativeMethods.UpdateResource(hUpdate, New IntPtr(RT_ICON), New IntPtr(iconBaseID + i), 0, image, image.Length)  
  88.         Next  
  89.         NativeMethods.EndUpdateResource(hUpdate, False)  
  90.     End Sub  
  91.   
  92.     Private Class IconFile  
  93.   
  94.         Private iconDir As New ICONDIR  
  95.         Private iconEntry() As ICONDIRENTRY  
  96.         Private iconImage()() As Byte  
  97.   
  98.         Public ReadOnly Property ImageCount() As Integer  
  99.             Get  
  100.                 Return iconDir.Count  
  101.             End Get  
  102.         End Property  
  103.   
  104.         Public ReadOnly Property ImageData(ByVal index As Integer) As Byte()  
  105.             Get  
  106.                 Return iconImage(index)  
  107.             End Get  
  108.         End Property  
  109.   
  110.         Private Sub New()  
  111.         End Sub  
  112.   
  113.         Public Shared Function FromFile(ByVal filename As String) As IconFile  
  114.             Dim instance As New IconFile  
  115.             Dim fileBytes() As Byte = IO.File.ReadAllBytes(filename)  
  116.             Dim pinnedBytes = GCHandle.Alloc(fileBytes, GCHandleType.Pinned)  
  117.             instance.iconDir = DirectCast(Marshal.PtrToStructure(pinnedBytes.AddrOfPinnedObject, GetType(ICONDIR)), ICONDIR)  
  118.             instance.iconEntry = New ICONDIRENTRY(instance.iconDir.Count - 1) {}  
  119.             instance.iconImage = New Byte(instance.iconDir.Count - 1)() {}  
  120.             Dim offset = Marshal.SizeOf(instance.iconDir)  
  121.             Dim iconDirEntryType = GetType(ICONDIRENTRY)  
  122.             Dim size = Marshal.SizeOf(iconDirEntryType)  
  123.             For i = 0 To instance.iconDir.Count - 1  
  124.                 Dim entry = DirectCast(Marshal.PtrToStructure(New IntPtr(pinnedBytes.AddrOfPinnedObject.ToInt64 + offset), iconDirEntryType), ICONDIRENTRY)  
  125.                 instance.iconEntry(i) = entry  
  126.                 instance.iconImage(i) = New Byte(entry.BytesInRes - 1) {}  
  127.                 Buffer.BlockCopy(fileBytes, entry.ImageOffset, instance.iconImage(i), 0, entry.BytesInRes)  
  128.                 offset += size  
  129.             Next  
  130.             pinnedBytes.Free()  
  131.             Return instance  
  132.         End Function  
  133.   
  134.         Public Function CreateIconGroupData(ByVal iconBaseID As UInteger) As Byte()  
  135.             Dim sizeOfIconGroupData As Integer = Marshal.SizeOf(GetType(ICONDIR)) + Marshal.SizeOf(GetType(GRPICONDIRENTRY)) * ImageCount  
  136.             Dim data(sizeOfIconGroupData - 1) As Byte  
  137.             Dim pinnedData = GCHandle.Alloc(data, GCHandleType.Pinned)  
  138.             Marshal.StructureToPtr(iconDir, pinnedData.AddrOfPinnedObject, False)  
  139.             Dim offset = Marshal.SizeOf(iconDir)  
  140.             For i = 0 To ImageCount - 1  
  141.                 Dim grpEntry As New GRPICONDIRENTRY  
  142.                 Dim bitmapheader As New BITMAPINFOHEADER  
  143.                 Dim pinnedBitmapInfoHeader = GCHandle.Alloc(bitmapheader, GCHandleType.Pinned)  
  144.                 Marshal.Copy(ImageData(i), 0, pinnedBitmapInfoHeader.AddrOfPinnedObject, Marshal.SizeOf(GetType(BITMAPINFOHEADER)))  
  145.                 pinnedBitmapInfoHeader.Free()  
  146.                 grpEntry.Width = iconEntry(i).Width  
  147.                 grpEntry.Height = iconEntry(i).Height  
  148.                 grpEntry.ColorCount = iconEntry(i).ColorCount  
  149.                 grpEntry.Reserved = iconEntry(i).Reserved  
  150.                 grpEntry.Planes = bitmapheader.Planes  
  151.                 grpEntry.BitCount = bitmapheader.BitCount  
  152.                 grpEntry.BytesInRes = iconEntry(i).BytesInRes  
  153.                 grpEntry.ID = CType(iconBaseID + i, UShort)  
  154.                 Marshal.StructureToPtr(grpEntry, New IntPtr(pinnedData.AddrOfPinnedObject.ToInt64 + offset), False)  
  155.                 offset += Marshal.SizeOf(GetType(GRPICONDIRENTRY))  
  156.             Next  
  157.             pinnedData.Free()  
  158.             Return data  
  159.         End Function  
  160.   
  161.     End Class  
  162.   
  163. End Class  


Revenir en haut
Publicité






MessagePosté le: Dim 11 Déc - 17:05 (2011)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre le Hack Index du Forum -> A trié Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  




Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com