begin process at 2012 02 09 04:21:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > INTERNATIONAL PATCHING SYSTEM ( GBA ROM TOOLS ) : APPLIQUER OU CRÉER UN PATCH IPS

INTERNATIONAL PATCHING SYSTEM ( GBA ROM TOOLS ) : APPLIQUER OU CRÉER UN PATCH IPS


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Source .NET ( DotNet ) Classé sous :ips, patch, rom, gba Niveau :Débutant Date de création :26/10/2004 Date de mise à jour :12/02/2007 00:52:14 Vu / téléchargé :23 216 / 493

Auteur : hvb

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


 Description

Voila un petit prog tout simple, tiré de mon GBATOols (les patchs pour les roms game boy advance sont
tous des IPS)  permettant de créer ou d'appliquer un patch ips (system de patch dit universel).
En regardant un peu la structure de ces fichiers .ips, on voit qu'elle est plus que simple :
"PATCH" & Offset_des_octets_a_modifié_sur_3_octets & Longueur_du_groupe_d_octets & Octets_a_modifié &
Offset_des_octets_a_modifié_sur_3_octets & Longueur_du_groupe_d_octets & Octets_a_modifié & (etc..) & EOF
Ce qui m'a donc permis d'ecrire ce code en vitesse.
Il peut surement être optimisé, je n'ai pas passé beaucoup de temps dessus.
J'ai mis un projet exemple dans le zip.

Source

  • Private Sub createips(ByVal chemin1 As String, ByVal chemin2 As String, ByVal chemin3 As String)
  • Dim ips As String
  • Dim ipsz() As Byte
  • ' Try
  • Dim hbread1 As New BinaryReader(File.OpenRead(chemin1))
  • Dim hbread2 As New BinaryReader(File.OpenRead(chemin2))
  • Dim smallestfile As Integer
  • Dim F_array1(FileLen(chemin1) - 1) As Byte
  • Dim F_array2(FileLen(chemin2) - 1) As Byte
  • hbread1.BaseStream.Seek(0, SeekOrigin.Begin)
  • hbread1.Read(F_array1, 0, FileLen(chemin1))
  • hbread1.BaseStream.Flush()
  • hbread1.Close()
  • hbread2.BaseStream.Seek(0, SeekOrigin.Begin)
  • hbread2.Read(F_array2, 0, FileLen(chemin2))
  • hbread2.BaseStream.Flush()
  • hbread2.Close()
  • Dim maxi As Long
  • Dim mini As Long
  • Dim isastring As Boolean
  • Dim n As Long
  • Dim intlength As Integer
  • Dim tmp As String
  • Dim tmp2 As String
  • Dim tmpstring As String
  • If F_array1.GetUpperBound(0) > F_array2.GetUpperBound(0) Then
  • maxi = F_array1.GetUpperBound(0)
  • mini = F_array2.GetUpperBound(0)
  • End If
  • If F_array1.GetUpperBound(0) < F_array2.GetUpperBound(0) Then
  • 'Si le fichier modifié est + gros que le fichier source
  • 'on commence le fichier ips (par la fin) en ecrivant les octets suplémentaire
  • 'suivi de la traditionel syntaxe offset sur 3 bytes, length sur 2 bytes
  • maxi = F_array2.GetUpperBound(0)
  • mini = F_array1.GetUpperBound(0)
  • For n = maxi To mini + 1 Step -1
  • tmpstring = Convert.ToChar(F_array2(n)) & tmpstring
  • intlength += 1
  • Next
  • tmp = convertfrombase10(mini + 1).PadLeft(6, "0")
  • tmp2 = convertfrombase10(intlength).PadLeft(4, "0")
  • ips = Convert.ToChar(convertfrombase16(tmp.Substring(0, 2))) & _
  • Convert.ToChar(convertfrombase16(tmp.Substring(2, 2))) & _
  • Convert.ToChar(convertfrombase16(tmp.Substring(4, 2))) & _
  • Convert.ToChar(convertfrombase16(tmp2.Substring(0, 2))) & _
  • Convert.ToChar(convertfrombase16(tmp2.Substring(2, 2))) & tmpstring
  • End If
  • If F_array1.GetUpperBound(0) = F_array2.GetUpperBound(0) Then
  • maxi = F_array2.GetUpperBound(0)
  • mini = F_array2.GetUpperBound(0)
  • End If
  • intlength = 0
  • For n = mini To 0 Step -1
  • If F_array1(n) <> F_array2(n) Then 'si les deux octets sont differents :
  • If isastring = False Then
  • intlength = 1
  • tmp2 = convertfrombase10(intlength).PadLeft(4, "0")
  • tmp = convertfrombase10(n).PadLeft(6, "0")
  • tmpstring = Convert.ToChar(F_array2(n))
  • isastring = True
  • Else
  • 'si isastring = true c'est que le caractere precedent etait different lui aussi
  • intlength += 1
  • tmp2 = convertfrombase10(intlength).PadLeft(4, "0")
  • tmp = convertfrombase10(n).PadLeft(6, "0")
  • tmpstring = Convert.ToChar(F_array2(n)) & tmpstring
  • End If
  • isastring = True
  • Else
  • If intlength >= 1 Then
  • 'on ecrit offset sur 3 bytes, length sur 2 bytes puis l'(les) octet(s)
  • 'different(s) au debut de la variable ips (on ecrit le fichier à l'envers)
  • ips = Convert.ToChar(convertfrombase16(tmp.Substring(0, 2))) & _
  • Convert.ToChar(convertfrombase16(tmp.Substring(2, 2))) & _
  • Convert.ToChar(convertfrombase16(tmp.Substring(4, 2))) & _
  • Convert.ToChar(convertfrombase16(tmp2.Substring(0, 2))) & _
  • Convert.ToChar(convertfrombase16(tmp2.Substring(2, 2))) & tmpstring & ips
  • End If
  • isastring = False
  • intlength = 0
  • End If
  • Next
  • ips = "PATCH" & ips & "EOF"
  • 'on ecrit au sens propre le fichier
  • Dim F_array3(ips.Length - 1) As Byte
  • For n = 0 To ips.Length - 1
  • F_array3(n) = Convert.ToByte(ips.Chars(n))
  • Next
  • Dim hbwrite As New BinaryWriter(File.OpenWrite(chemin3))
  • hbwrite.BaseStream.Seek(0, SeekOrigin.Begin)
  • hbwrite.Write(F_array3, 0, ips.Length)
  • hbwrite.BaseStream.Flush()
  • hbwrite.Flush()
  • hbwrite.Close()
  • MsgBox("Ips creation succesful")
  • ' Catch ex As Exception
  • ' MsgBox(ex.Message)
  • ' End Try
  • End Sub
  • Private Sub apply_ips(ByVal chemin1 As String, ByVal chemin2 As String, ByVal chemin3 As String)
  • Dim ips As String
  • Dim ipsz() As Byte
  • Dim n As Integer
  • ' Try
  • Dim hbread1 As New BinaryReader(File.OpenRead(chemin1))
  • Dim hbread2 As New BinaryReader(File.OpenRead(chemin2))
  • Dim F_array1(FileLen(chemin1) - 1) As Byte
  • Dim F_array2(FileLen(chemin2) - 1) As Byte
  • hbread1.BaseStream.Seek(0, SeekOrigin.Begin)
  • hbread1.Read(F_array1, 0, FileLen(chemin1))
  • hbread1.BaseStream.Flush()
  • hbread1.Close()
  • hbread2.BaseStream.Seek(0, SeekOrigin.Begin)
  • hbread2.Read(F_array2, 0, FileLen(chemin2))
  • hbread2.BaseStream.Flush()
  • hbread2.Close()
  • Dim patch As String
  • Dim tmphexoffset As String
  • Dim tmphexlength As String
  • Dim tmplength As Integer
  • Dim tmpoffset As Integer
  • Dim tmpstring As String
  • Dim m As Integer
  • Dim a As Integer
  • Dim l As Integer
  • patch = Convert.ToChar(F_array2(0)) & Convert.ToChar(F_array2(1)) & Convert.ToChar(F_array2(2)) & Convert.ToChar(F_array2(3)) & Convert.ToChar(F_array2(4))
  • If patch = "PATCH" Then
  • n = 5
  • Do
  • 'on lit dans tmphexoffset les 3 prochains octets, qui represente
  • 'l'offset des octets à modifier
  • tmphexoffset = convertfrombase10(F_array2(n)).PadLeft(2, "0") & convertfrombase10(F_array2(n + 1)).PadLeft(2, "0") & convertfrombase10(F_array2(n + 2)).PadLeft(2, "0")
  • 'si on rencontre les 3 octets E O F , on sort de la boucle
  • If tmphexoffset = "454f46" And n >= F_array2.Length - 4 Then Exit Do
  • 'on lit dans tmphexlength les 2 prochains octets, qui represente
  • 'la taille des octets à modifier
  • tmphexlength = convertfrombase10(F_array2(n + 3)).PadLeft(2, "0") & convertfrombase10(F_array2(n + 4)).PadLeft(2, "0")
  • '(conversions)
  • tmplength = convertfrombase16(tmphexlength)
  • tmpoffset = convertfrombase16(tmphexoffset)
  • tmpstring = ""
  • 'on lit maintenant les octets a modifier dans tmpstring
  • For m = n + 5 To n + 5 + tmplength - 1
  • tmpstring += Convert.ToChar(F_array2(m))
  • Next
  • l = 0
  • 'si les octets sont a ecrire plus loin que la fin du fichier, on agrandi le tableau
  • If (tmpoffset + tmplength - 1) > F_array1.Length Then ReDim Preserve F_array1(tmpoffset + tmplength - 1)
  • 'on modifie les octets lues precedements dans le tableau de byte du fichier à patcher
  • For a = tmpoffset To tmpoffset + tmplength - 1
  • F_array1(a) = Convert.ToByte(tmpstring.Chars(l))
  • l += 1
  • Next
  • n = n + 5 + tmplength
  • Loop
  • 'on ecrit le tableau
  • Dim hbwrite As New BinaryWriter(File.OpenWrite(chemin3))
  • hbwrite.BaseStream.Seek(0, SeekOrigin.Begin)
  • hbwrite.Write(F_array1, 0, F_array1.Length)
  • hbwrite.BaseStream.Flush()
  • hbwrite.Flush()
  • hbwrite.Close()
  • Else
  • MsgBox("bad ips file")
  • End If
  • MsgBox("Ips patching succesful")
  • ' Catch ex As Exception
  • ' MsgBox(ex.Message)
  • ' End Try
  • End Sub
  • Public Function convertfrombase16(ByVal hexa As String) As Integer
  • Return Convert.ToInt64(hexa, 16) 'converti en type int64(equivalent de long) et en base 10 la valeur de "hexa" à partir d'une base 16
  • End Function
  • Public Function convertfrombase10(ByVal dec As Integer) As String
  • Return Convert.ToString(dec, 16) 'converti la valeur Long de "dec" en base 16
  • End Function
  Private Sub createips(ByVal chemin1 As String, ByVal chemin2 As String, ByVal chemin3 As String)
        Dim ips As String
        Dim ipsz() As Byte
        '     Try
        Dim hbread1 As New BinaryReader(File.OpenRead(chemin1))
        Dim hbread2 As New BinaryReader(File.OpenRead(chemin2))
        Dim smallestfile As Integer
        Dim F_array1(FileLen(chemin1) - 1) As Byte
        Dim F_array2(FileLen(chemin2) - 1) As Byte
        hbread1.BaseStream.Seek(0, SeekOrigin.Begin)
        hbread1.Read(F_array1, 0, FileLen(chemin1))
        hbread1.BaseStream.Flush()
        hbread1.Close()
        hbread2.BaseStream.Seek(0, SeekOrigin.Begin)
        hbread2.Read(F_array2, 0, FileLen(chemin2))
        hbread2.BaseStream.Flush()
        hbread2.Close()
        Dim maxi As Long
        Dim mini As Long
        Dim isastring As Boolean
        Dim n As Long
        Dim intlength As Integer
        Dim tmp As String
        Dim tmp2 As String
        Dim tmpstring As String

        If F_array1.GetUpperBound(0) > F_array2.GetUpperBound(0) Then
            maxi = F_array1.GetUpperBound(0)
            mini = F_array2.GetUpperBound(0)
        End If
        If F_array1.GetUpperBound(0) < F_array2.GetUpperBound(0) Then
            'Si le fichier modifié est + gros que le fichier source
            'on commence le fichier ips (par la fin) en ecrivant les octets suplémentaire 
            'suivi de la traditionel syntaxe offset sur 3 bytes, length sur 2 bytes
            maxi = F_array2.GetUpperBound(0)
            mini = F_array1.GetUpperBound(0)
            For n = maxi To mini + 1 Step -1

                tmpstring = Convert.ToChar(F_array2(n)) & tmpstring
                intlength += 1
            Next
            tmp = convertfrombase10(mini + 1).PadLeft(6, "0")
            tmp2 = convertfrombase10(intlength).PadLeft(4, "0")
            ips = Convert.ToChar(convertfrombase16(tmp.Substring(0, 2))) & _
   Convert.ToChar(convertfrombase16(tmp.Substring(2, 2))) & _
   Convert.ToChar(convertfrombase16(tmp.Substring(4, 2))) & _
   Convert.ToChar(convertfrombase16(tmp2.Substring(0, 2))) & _
   Convert.ToChar(convertfrombase16(tmp2.Substring(2, 2))) & tmpstring
        End If
        If F_array1.GetUpperBound(0) = F_array2.GetUpperBound(0) Then
            maxi = F_array2.GetUpperBound(0)
            mini = F_array2.GetUpperBound(0)
        End If

        intlength = 0


        For n = mini To 0 Step -1
            If F_array1(n) <> F_array2(n) Then 'si les deux octets sont differents :
                If isastring = False Then
                    intlength = 1
                    tmp2 = convertfrombase10(intlength).PadLeft(4, "0")
                    tmp = convertfrombase10(n).PadLeft(6, "0")
                    tmpstring = Convert.ToChar(F_array2(n))
                    isastring = True
                Else
                    'si isastring = true c'est que le caractere precedent etait different lui aussi
                    intlength += 1
                    tmp2 = convertfrombase10(intlength).PadLeft(4, "0")
                    tmp = convertfrombase10(n).PadLeft(6, "0")
                    tmpstring = Convert.ToChar(F_array2(n)) & tmpstring
                End If
                isastring = True
            Else
                If intlength >= 1 Then
                    'on ecrit offset sur 3 bytes, length sur 2 bytes puis l'(les) octet(s)
                    'different(s) au debut de la variable ips (on ecrit le fichier à l'envers)
                    ips = Convert.ToChar(convertfrombase16(tmp.Substring(0, 2))) & _
   Convert.ToChar(convertfrombase16(tmp.Substring(2, 2))) & _
   Convert.ToChar(convertfrombase16(tmp.Substring(4, 2))) & _
   Convert.ToChar(convertfrombase16(tmp2.Substring(0, 2))) & _
   Convert.ToChar(convertfrombase16(tmp2.Substring(2, 2))) & tmpstring & ips
                End If
                isastring = False
                intlength = 0
            End If
        Next
        ips = "PATCH" & ips & "EOF"

        'on ecrit au sens propre le fichier
        Dim F_array3(ips.Length - 1) As Byte
        For n = 0 To ips.Length - 1
            F_array3(n) = Convert.ToByte(ips.Chars(n))
        Next
        Dim hbwrite As New BinaryWriter(File.OpenWrite(chemin3))
        hbwrite.BaseStream.Seek(0, SeekOrigin.Begin)
        hbwrite.Write(F_array3, 0, ips.Length)
        hbwrite.BaseStream.Flush()
        hbwrite.Flush()
        hbwrite.Close()
        MsgBox("Ips creation succesful")
        '      Catch ex As Exception
        '         MsgBox(ex.Message)
        '       End Try
    End Sub

    Private Sub apply_ips(ByVal chemin1 As String, ByVal chemin2 As String, ByVal chemin3 As String)
        Dim ips As String
        Dim ipsz() As Byte
        Dim n As Integer
        '   Try
        Dim hbread1 As New BinaryReader(File.OpenRead(chemin1))
        Dim hbread2 As New BinaryReader(File.OpenRead(chemin2))
        Dim F_array1(FileLen(chemin1) - 1) As Byte
        Dim F_array2(FileLen(chemin2) - 1) As Byte
        hbread1.BaseStream.Seek(0, SeekOrigin.Begin)
        hbread1.Read(F_array1, 0, FileLen(chemin1))
        hbread1.BaseStream.Flush()
        hbread1.Close()
        hbread2.BaseStream.Seek(0, SeekOrigin.Begin)
        hbread2.Read(F_array2, 0, FileLen(chemin2))
        hbread2.BaseStream.Flush()
        hbread2.Close()
        Dim patch As String
        Dim tmphexoffset As String
        Dim tmphexlength As String
        Dim tmplength As Integer
        Dim tmpoffset As Integer
        Dim tmpstring As String
        Dim m As Integer
        Dim a As Integer
        Dim l As Integer
        patch = Convert.ToChar(F_array2(0)) & Convert.ToChar(F_array2(1)) & Convert.ToChar(F_array2(2)) & Convert.ToChar(F_array2(3)) & Convert.ToChar(F_array2(4))
        If patch = "PATCH" Then
            n = 5
            Do
                'on lit dans tmphexoffset les 3 prochains octets, qui represente 
                'l'offset des octets à modifier
                tmphexoffset = convertfrombase10(F_array2(n)).PadLeft(2, "0") & convertfrombase10(F_array2(n + 1)).PadLeft(2, "0") & convertfrombase10(F_array2(n + 2)).PadLeft(2, "0")
                'si on rencontre les 3 octets E O F , on sort de la boucle
                If tmphexoffset = "454f46" And n >= F_array2.Length - 4 Then Exit Do
                'on lit dans tmphexlength les 2 prochains octets, qui represente
                'la taille des octets à modifier
                tmphexlength = convertfrombase10(F_array2(n + 3)).PadLeft(2, "0") & convertfrombase10(F_array2(n + 4)).PadLeft(2, "0")
                '(conversions)
                tmplength = convertfrombase16(tmphexlength)
                tmpoffset = convertfrombase16(tmphexoffset)
                tmpstring = ""
                'on lit maintenant les octets a modifier dans tmpstring
                For m = n + 5 To n + 5 + tmplength - 1
                    tmpstring += Convert.ToChar(F_array2(m))
                Next
                l = 0
                'si les octets sont a ecrire plus loin que la fin du fichier, on agrandi le tableau
                If (tmpoffset + tmplength - 1) > F_array1.Length Then ReDim Preserve F_array1(tmpoffset + tmplength - 1)
                'on modifie les octets lues precedements dans le tableau de byte du fichier à patcher
                For a = tmpoffset To tmpoffset + tmplength - 1
                    F_array1(a) = Convert.ToByte(tmpstring.Chars(l))
                    l += 1
                Next
                n = n + 5 + tmplength
            Loop
            'on ecrit le tableau
            Dim hbwrite As New BinaryWriter(File.OpenWrite(chemin3))
            hbwrite.BaseStream.Seek(0, SeekOrigin.Begin)
            hbwrite.Write(F_array1, 0, F_array1.Length)
            hbwrite.BaseStream.Flush()
            hbwrite.Flush()
            hbwrite.Close()
        Else
            MsgBox("bad ips file")
        End If
        MsgBox("Ips patching succesful")
        '       Catch ex As Exception
        '           MsgBox(ex.Message)
        '       End Try
    End Sub

    Public Function convertfrombase16(ByVal hexa As String) As Integer
        Return Convert.ToInt64(hexa, 16) 'converti en type int64(equivalent de long) et en base 10 la valeur de "hexa" à partir d'une base 16 
    End Function

    Public Function convertfrombase10(ByVal dec As Integer) As String
        Return Convert.ToString(dec, 16)  'converti la valeur Long de "dec" en base 16
    End Function

 Conclusion

Commentaires...?

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

29 octobre 2004 14:22:37 :
.
03 novembre 2004 01:35:05 :
.
03 novembre 2004 01:36:56 :
.
12 février 2007 00:52:14 :
ajout mot clés

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) FOND DE FEUILLE ANIMÉ : DÉGRADÉ MOUVANT POUR ABOUT OU SPLASH...
Source avec Zip Source avec une capture Source .NET (Dotnet) FONT VIEWER : VISIONNEUSE DE POLICES SYSTEMES.
Source avec Zip Source avec une capture Source .NET (Dotnet) HBSNAPSHOTERV3.0 : GESTIONNAIRE DE CAPTURES D'ÉCRAN
Source avec Zip Source avec une capture Source .NET (Dotnet) JEU : PICROSS OU "PUZZLE JAPONAIS"
Source avec Zip Source .NET (Dotnet) [.NET2] COMPRESSION/DÉCOMPRESSION GZIP DE FICHIER GRÂCE À IO...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture LECTURE DES INFORMATIONS DES DISQUES COMPOSANT UN ENSEMBLE R... par jack

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture UN PATCH EN VB (V3) par PhoenixBytes
Source avec Zip Source avec une capture UN PATCH EN VB par DestroyMachine
Source avec Zip LIRE UN BYTE PAR API par Duke49
Source avec Zip Source avec une capture VISUAL IP LOCATOR par Egyde

Commentaires et avis

Commentaire de Mindiell le 26/10/2004 10:17:41

Très intéressant, je regarde ca et je te dis ce que j'en pense...

Commentaire de Mindiell le 26/10/2004 12:04:16

Bon, c'est plutot interessant, mas ca ne permet apparemment pas de modifier un octet par 3 octets par exemple. C'est à dire patcher deux fichiers de tailles différentes... Je vais voir si je peux ameliorer ce format :)

Commentaire de Mindiell le 26/10/2004 12:30:13

Arf, je peux pas supprimer mes commentaires moi-meme.
Bon, ce programme permet de patcher correctement tout type de fichier, quelles que soient les tailles de départ et d'arrivée. Le seul problème c'est que mon exécutable de 640ko patché en exécutable de 668ko demande un fichier IPS d'une taille de 810ko :)

Je vais voir, parce que l'algorithme du fichier IPS n'est pas prévu pour remplacer x octets par y. Pour obtenir le même résultat, il doit patcher tout le fichier jusqu'au bout après avoir décalé les octets...

Commentaire de spy166 le 26/10/2004 18:23:00

Très intéressant (c'est ma gba qui va être contente).
Ca fait un moment que j'utilise des trucs de ce style, sans vraiment mettre poser la question de ce que ca faisait, etc...
Ca ma bien donné envie de m'y mettre, merci pour ces 3 sources.

Commentaire de hvb le 27/10/2004 02:48:47

Hello. tout d'abord merci pour les commentaires.
Minidiell : comme je l'ai dit plus haut, j'ai écrit l'algo en analysant betement la structure de fichiers ips crées avec ips.exe .
apres qq recherches, je me suis rendu compte que pas mal d'ips patcher ne gere que les fichiers de meme tailles alors que ips.exe lui le fait, j'ai donc essayer de le faire marcher à ma façon,
apres plusieurs tests, les resultats sont les meme avec le mien et ips.exe.
Il est possible qu'il y ai quelques specificitées dans certains cas que je n'ai pas geré.
Tout çà pour te demander de tester avec ips.exe et de me dire si le resultat est aussi peu... interessant (la taille du patch plus grande que celle du fichier)
Spy166 : merci , ça me fait plaisir de m'assurer qu'il y a des codeurs .net possesseurs de GBA. Ca me motive plus encore pour finir une 1ere version complete de GBATOols et de le poster.

Commentaire de Mindiell le 27/10/2004 09:25:14

PS: j'ai aussi une GBA ;)
je vais recuperer ips.exe pour voir, mais j'ai regarder le format du fichier sur le net, et a priori t'as tout bon. Certainement que sur Amiga, pour patcher (cracker) un programme, il suffisait de remplacer les octets.

J'ai essayé en VB simple, j'ai pas encore fini. Pour le IPS v2 by moi meme, j'ai deja mon idée, ca devrait pas etr etrop compliqué. Par contre, c'est l'algo qui va etre super dur derriere...

Commentaire de Benouille le 03/11/2004 15:25:26

c'est quoi GBA? game boy advanced?

bonne source en tout cas :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

rom gba sp [ par azerty1819 ] bonjour à tous,voila mes problemes : mon fils a acheté à la FNAC le "READER SD" de BIGBEN ainsi qu'une carte sd de 1gb afin de pouvoir utiliser sa gam Detecter l'apparition d'un fichier [ par nablimohavb ] BonjoursJe travaille sur une application qui fait l'envoie d'un fichier de données vert une machine l'envoie se fait à traver un patch "Patch.exe", le cd rom virtuel [ par hgrandsart ] Bonjour tout le monde Voici mon problème, je souhaite créer un lecteur de CD ROM VIRTUEL, pas un Disque dur, ça je sais faire, mais un CD ROM pour en patch de mon application en vb.net [ par wassimbazmi ] Bonjour je suis débutant en vb.net je développe une application et je veut faire un patch pour la mise a jour de cette application. ce patch vérif Allocation mémoire d'une structure passée en pointeur à une DLL C++ [ par Feanor06 ] Bonjour ! Bon, désolé mais je dois pas être dans le bon thème, mais j'en ai pas trouvé qui collait bien (style "truc de ouf" [^^clinoeil3]). J'ai un aide pour patch [ par cocaine84 ] bonjour, voila j'éssai de m'epliquer clairement je veut créer un patch pour counter strike source qui existe dèja. g les fichier mais je c pas quel c Créer une liste d'objets...puis la trier sur 1 de ses "attributs" en ne prenant pas en compte la différence majuscule/minuscule [ par Jayme65 ] Bonjour, Je devais créer un tableau à 2 dimensions. Je me suis dit que je pouvais le faire en créant une classe, et en faisant un: List (Of ma classe Securiser mon logiciel [ par Light666 ] Bonjour, J'ai créer un logiciel pour l'apprentissage de l'anglais, ce logiciel ce lance avec un patch qui se trouve sur une clé USB. Mon problème : Je Graver un CD-rom [ par Bidulle ] Quelqu'un aurait-il une idee????Je dois réaliser un programme qui gravera un repertoire donnée sans trop de manipulationJ'ai bien une idée mais j'aime recherche du lecteur de CD rom [ par delphine ] Bonjour,Je voudrais savoir sur quel lecteur se trouve le cd-rom, ceci pour pouvoir examiner le contenu d'un cdmerci d'avance !


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,638 sec (3)

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