[UTILS] Hareng Tool

Des soucis pour hacker votre jeu ? C'est ici qu'il faut exposer votre problème.
Avatar de l’utilisateur
Lyan
Dieu Suprême du flood
Messages : 1441
Inscription : 19 nov. 2007, 04:56
Localisation : Raxacoricofallapatorius
Contact :

Re: [UTILS] Hareng Tool

Message non lu par Lyan » 19 juil. 2014, 16:01

Y'a effectivement une version du hareng qui merdouille sur la réinsertion avec le mode sans pointeurs

Ce n'est pas la 1ère fois qu'on croise le cas, et j'avais même récup une version du hareng qui n'a pas ce problème (peut être une version plus ancienne ou fixée). Je ne suis plus très sûr, mais il me semble que c'est Hiei- qui l'avait postée


Bref si le fix de Baha ne fonctionne pas, essaye voir avec cette version-ci :
Pièces jointes
hareng-tool (sans pt fixed).rar
(150.94 Kio) Téléchargé 82 fois
http://www.youtube.com/user/Lyan53
Image
- Avec les gens de cour, vos pareils don Salluste, je vous laisse et je reste avec mes chenapans. Je vis avec les loups, non avec les serpents.
- L'amour a dompté le loup ! Ôtez-lui l'amour, il redeviendra un loup.

Avatar de l’utilisateur
Musashi
Maître Suprême Floodeur
Messages : 522
Inscription : 19 mars 2005, 19:51
Localisation : Wonderland

Re: [UTILS] Hareng Tool

Message non lu par Musashi » 19 juil. 2014, 21:33

J'ai été feignasse j'ai pris directement le fichier de Lyan, et ça marche la réinsertion, merci. :P

Avatar de l’utilisateur
cloud
Maître Suprême Floodeur
Messages : 458
Inscription : 29 janv. 2008, 00:07

Re: [UTILS] Hareng Tool

Message non lu par cloud » 14 mai 2018, 13:47

Salutations !
Entrons dans le vif du sujet, j'essaie d'extraire avec le hareng, mais je n'y arrive pas. Ca fait très longtemps que je m'en suis pas servi et je dois sûrement me manquer quelques part.

voilà ce que je mets :

extraire("sysmes.dat", "fsb.tbl", "script.txt", 0x10, 0xC64, 0xC68, 108B, 4, "X+$0", little_endian)
nom de fichier, nom de la table, fichier de sortie du texte, debut du texte, fin du texte, debut de la table de pointeur, fin de la table de pointeurs, pointeurs sur 4 octets, X+ sûrement mauvais, mais j'arrive pas à le calculer, little endian car pointeur à "l'envers".

le message d'erreur est le suivant :
[string "in"]:1: malformed number near '108B'
attempt to call a string value

Je suis complètement perdu, quand je modifie le fichier en mettant la table de pointeur avant le texte, ça extrait du bidon, mais ça extrait quelques choses, mais avec le fichier original, j'arrive à rien.

J'ai aussi essayé pointeur table, dans la version la plus ancienne, en choisissant l'extraction avec les pointeurs en scaterred 4 bytes ( fonction je ne trouve pas dans la version 2.0 bizarrement ) le soucis pour pointeur table c'est la réinsertion, dans la version 1, il pattoge à l'infini et n'insère qu'une phrase, et la version 2 refuse de réinsérer il me met un message d'erreur concernant la table.

Bref je suis un peu pommé, ça fait tellement longtemps je me suis pas servit de ces outils, et autant avec le hareng j'ai déjà eu du mal, mais pointeur table a toujours marché quelques soit le fichier à l'époque, mais pour celui-là...

Merci d'avance !
Pièces jointes
sysmes.rar
(26.9 Kio) Téléchargé 24 fois
Patch de traduction Française de Tales of Vesperia PS3 :
https://mega.nz/#F!QqZjwJIB!puHFECuTzrnLtPBsi9318A

Patch traduction Française Nine Hours Nine Persons Nine Doors NDS :
https://mega.nz/#F!E2J0gYBL!JrF2xLWi4FmqBXUPPtNVYw

Avatar de l’utilisateur
BahaBulle
Bub'n'Bob Pawa!
Messages : 6457
Inscription : 06 août 2002, 09:34
Localisation : Sur une bulle
Contact :

Re: [UTILS] Hareng Tool

Message non lu par BahaBulle » 14 mai 2018, 22:46

Le message est pourtant clair, il y a un problème avec la valeur "108B" qui est une valeur hexadécimale et donc doit être précédé par 0x.

Et, il ne faut pas mettre l'adresse de fin de la table de pointeurs mais le nombre de pointeurs.

cloud2
Messages : 7
Inscription : 15 mai 2018, 17:47

Re: [UTILS] Hareng Tool

Message non lu par cloud2 » 15 mai 2018, 18:47

BahaBulle a écrit :
14 mai 2018, 22:46
Le message est pourtant clair, il y a un problème avec la valeur "108B" qui est une valeur hexadécimale et donc doit être précédé par 0x.

Et, il ne faut pas mettre l'adresse de fin de la table de pointeurs mais le nombre de pointeurs.
Merci beaucoup, j'avais pas fait gaffe :)

Je te dérange je l'espère une dernière fois, mais l'extraction ne se passe pas très bien, je m'explique. De ce que je lisais dans les pages précédente, pour calculer la valeur, il fallait soustraire l'adresse du début de texte à la valeur du pointeur.

Cas 1 :
0x10 ( adresse du premier texte ) - 0x23 ( premier pointeur ) = X-$FFFFFFFFFFFFFFED

Le soucis c'est que le premier pointeur ne correspond pas au texte, donc normal que l'extraction soit foireuse.


Cas 2 :
0x10 ( adresse du premier texte ) - 0x10 ( valeur du pointeur de ce texte présent dans la table, car tous les pointeurs ne sont pas dans l'ordre ) = X+$0
Alors là on a une extraction presque complète du texte, et tout ce qui est extrait à son pointeur, mais tout n'est pas extrait justement.
Je vais mettre l'extaction dans une balise code.

Code : Tout sélectionner

<PT0025>
<PT0030>
<PT0034>
<PT0037>
<PT0040>
<PT0043>
<PT0047>
<PT0050>
<PT0090>
<PT0052>
<PT0089>
<PT0086>
<PT0055>
<PT0083>
<PT0080>
<PT0077>
<PT0059>
<PT0074>
<PT0071>
<PT0069>
<PT0063>
<PT0066>
<PT0264>
<PT0004>
<PT0022>
<PT0006>
<PT0010>
<PT0012>
<PT0014>
<PT0020>
<PT0017>
S<PT0152>
<PT0146>
T<PT0206>
<PT0100>
<PT0112>
<PT0118>
<PT0200>
<PT0181>
<PT0176>
<PT0175>
<PT0164>
<PT0190>
A<PT0259>
<PT0253>
<PT0247>
<PT0241>
<PT0235>
<PT0229>
<PT0217>
<PT0163>
<PT0211>
<PT0157>
<PT0091>
<PT0151>
<PT0205>
<PT0103>
<PT0145>
<PT0115>
<PT0139>
<PT0199>
<PT0121>
<PT0133>
<PT0127>
R<PT0187>
<PT0193>
<PT0122>
<PT0109>
<PT0196>
<PT0172>
<PT0128>
<PT0097>
<PT0169>
<PT0134>
<PT0223>
<PT0226>
<PT0160>
T_<PT0250>
<PT0094>
<PT0256>
<PT0220>
<PT0136>
<PT0262>
<PT0232>
<PT0184>
<PT0238>
C<PT0104>
<PT0142>
R<PT0194>
<PT0111>
<PT0260>
<PT0195>
<PT0189>
<PT0124>
<PT0099>
<PT0171>
<PT0212>
<PT0242>
<PT0248>
<PT0236>
<PT0244>
<PT0225>
<PT0140>
E<PT0130>
<PT0182>
<PT0254>
<PT0092>
<PT0218>
<PT0230>
A<PT0158>
<PT0165>
<PT0159>
<PT0135>
<PT0123>
<PT0129>
<PT0141>
<PT0170>
<PT0261>
<PT0255>
<PT0249>
<PT0243>
<PT0237>
<PT0231>
<PT0224>
<PT0219>
<PT0093>
<PT0213>
<PT0098>
<PT0147>
<PT0207>
<PT0153>
<PT0201>
<PT0105>
<PT0106>
<PT0188>
<PT0117>
T<PT0214>
<PT0166>
<PT0110>
<PT0116>
E<PT0177>
<PT0183>
_<PT0154>
<PT0148>
<PT0178>
<PT0202>
<PT0208>
FIRST<FIN>

<PT0001>
Creating save data.<FIN>

<PT0002>
You can save during the game by pressing START.<FIN>

<PT0003>
We strongly suggest that you save frequently.<FIN>

<PT0096>
SAVE_COMPLETE<FIN>

<PT0005>
Finished saving.<FIN>

<PT0102>
START_NODATA<FIN>

<PT0007>
Creating save data.<FIN>

<PT0008>
You can save during the game by pressing START.<FIN>

<PT0009>
We strongly suggest that you save frequently.<FIN>

<PT0108>
START_CREATE<FIN>

<PT0011>
Finished saving.<FIN>

<PT0114>
START_CREATE_NEW<FIN>

<PT0013>
Data overwritten.<FIN>

<PT0120>
START_WRITE1<FIN>

<PT0015>
You will start from the beginning of the game.<FIN>

<PT0016>
Would you like to overwrite this save data?<FIN>

<PT0126>
START_WRITE2<FIN>

<PT0018>
You will start from the beginning of the game, with information from previous playthrough(s).<FIN>

<PT0019>
Would you like to overwrite this save data?<FIN>

<PT0132>
START_NOCREATE1<FIN>

<PT0021>
Would you like to start the game from the beginning without creating save data?<FIN>

<PT0138>
START_NOCREATE2<FIN>

<PT0023>
You will begin the game without creating save data.<FIN>

<PT0024>
You can still save as you play the game.<FIN>

<PT0144>
DELETE1<FIN>

<PT0026>
Do you want to delete this data?<FIN>

<PT0027>
All information from previous playthrough(s) and unlocked escapes will be deleted.<FIN>

<PT0028>
You will be unable to retrieve this information once it is deleted.<FIN>

<PT0029>
Is this okay?<FIN>

<PT0150>
DELETE2<FIN>

<PT0031>
Are you sure you want to delete this data?<FIN>

<PT0032>
All information from previous playthrough(s) and unlocked escapes will be deleted.<FIN>

<PT0033>
You will be unable to retrieve this information once it is deleted.<FIN>

<PT0156>
DELETE3<FIN>

<PT0035>
Save data deleted.<FIN>

<PT0036>
Returning to title screen.<FIN>

<PT0162>
CONTINUE1<FIN>

<PT0038>
Would you like to resume from the point where you saved last?<FIN>

<PT0039>
If you select DYesD, please do not turn the power off until the DLoading completeD message is displayed.<FIN>

<PT0168>
CONTINUE2<FIN>

<PT0041>
Loading complete.<FIN>

<PT0042>
Resuming game.<FIN>

<PT0174>
QUIT<FIN>

<PT0044>
Do you want to end your current session and return to the stage select screen?<FIN>

<PT0045>
You will be unable to save your progress in this escape.<FIN>

<PT0046>
If you select this stage again, you will have to start from the beginning.<FIN>

<PT0180>
DATA_CORRUPT<FIN>

<PT0048>
This save file is corrupt.<FIN>

<PT0049>
Please select DStartD on the title screen.<FIN>

<PT0186>
END_GAME1<FIN>

<PT0051>
Would you like to quit?<FIN>

<PT0192>
END_GAME2<FIN>

<PT0053>
Could not save.<FIN>

<PT0054>
Would you like to quit?<FIN>

<PT0198>
ENDING_SAVE1<FIN>

<PT0056>
Would you like to keep the 

Je pense avoir mis la bonne valeur, donc j'ai pensé au nombre de pointeurs. Donc j'ai isolé la table de pointeurs, et ça taille en hexa est de 0x424, et le dernier 0x00 s'arrête à 0x423. Sachant qu'il y a 4 pointeurs par ligne, je divise 0x423 par 4, ce qui me donne en décimal 264, soit 264 pointeurs. Je précise quand même que par moment dans la table de pointeurs, il y a des 0x00 au lieu d'avoir une suite constante de 4 pointeurs par lignes, et c'est peut-être pour ça, je ne sais pas.
Si tu as la réponse baha ce serait sympathique, merci !


PS : C'est bien cloud, j'arrive pas à me connecter avec mon compte bizarrement ( que des problèmes mdr )

Avatar de l’utilisateur
BahaBulle
Bub'n'Bob Pawa!
Messages : 6457
Inscription : 06 août 2002, 09:34
Localisation : Sur une bulle
Contact :

Re: [UTILS] Hareng Tool

Message non lu par BahaBulle » 15 mai 2018, 21:22

Cas 1 :
Si tu utilises la version 1.2 du hareng, il commence par stoquer le bloc de données dans un buffer.
Ce buffer commence à l'adresse 0.
Donc si dans le fichier d'origine, ton début de texte est à l'adresse 0x10, il va se retrouver à l'adresse 0.

Donc pour que le pointeur corresponde à cette nouvelle adresse, il faut retirer 0x10 de la valeur de chaque pointeur : "X-0x10".

Cas 2:
A ce que je vois, ta table de pointeurs contient des "pointeurs" à 0, 1, 2... alors que ton texte commence à 0x10.
Ce qui veut dire que ta table de pointeurs contient d'autres données et donc forcément, cela va te faire une extraction un peu bizarre.

Tu pourrais t'en sortir en créant un script lua pour ne pas prendre en compte ces pointeurs.

Pour cela, tu peux t'inspirer du script ici : viewtopic.php?f=1&t=3275&p=119826#p119821
Qu'il faut, bien entendu adapter.

Avatar de l’utilisateur
kogami
Dieu Floodeur
Messages : 759
Inscription : 17 juin 2004, 16:47

Re: [UTILS] Hareng Tool

Message non lu par kogami » 15 mai 2018, 21:36

Généralement suffit de les supprimer a la main et au moment de l'insertion il ne prendra en compte que les pointeurs que tu aura laissé dans ton script
Traduction de BS Zelda - Ancient Stone Tablets (Projet en cour)Image

cloud2
Messages : 7
Inscription : 15 mai 2018, 17:47

Re: [UTILS] Hareng Tool

Message non lu par cloud2 » 16 mai 2018, 19:37

Merci beaucoup pour vos réponses, alors j'ai testé vos solutions, et... bah c'est pas bon :mad:

@Baha

Alors j'ai copié le code dans notepadd++ pour être sûr de pas avoir une perte en le copiant dans le bloc note, j'ai modifié ce que je pense devait être modifié. C'est à dire Adresse du script, adresse des pointeurs, et taille du script. J'ai aussi séparé le texte des pointeurs comme me le demande le fichier, mais l'extraction est toujours mauvaise malheureusement.

@Kogami

J'ai testé ta méthode, mais ça ne marche pas, je peux bien extraire correctement la partie du texte qui m'intéresse en supprimant les pointeurs superflue, et au moment de la réinsertion, eh bien il réinsère bien le texte, il recalcule bien les pointeurs, mais contrairement à ce que tu dis, il écrase bel et bien les pointeurs qui sont en plein milieu que j'ai supprimé quand je le réinsère le texte dans le fichier original. La table est donc toutes donc incomplète, ce qui provoque des bugs d'affichage de textes qui s'affiche plus au bon endroit, vu que les pointeurs ne sont plus à leurs places :/

Entre pointeur table qui extrait tout bien, mais bug à l'insertion, et le hareng, qui en l'état ( sans script personnel ) n'extrait pas correctement le texte, mais qui marche bien pour l'insertion de celui-ci, mais vu qu'on ne peut extraire bien avec les pointeurs au complet, l'insertion pose problème bien quelle marche en soit :fouet: :fouet: :fouet:

Désolé de vous avoir fait perdre votre de temps, mais je vais m'arrêter là avec ceci, je n'ai plus vraiment le temps à consacrer à ça, donc je vais rendre ça publique en l'état, vu que le projet est mort depuis plusieurs années, c'est pas ça qui va changer grand chose :-P
Ca reveillera peut-être les gens en releasant ça.

Avatar de l’utilisateur
BahaBulle
Bub'n'Bob Pawa!
Messages : 6457
Inscription : 06 août 2002, 09:34
Localisation : Sur une bulle
Contact :

Re: [UTILS] Hareng Tool

Message non lu par BahaBulle » 16 mai 2018, 21:13

Ah bah fallait changer plus de choses. Le script indiqué ne fait pas exactement ce que tu recherches.

Mais en regardant de plus près ton fichier, je pense que c'est encore plus complexe que ça. Dans la grosse table à la fin du fichier, je pense qu'il y a des pointeurs qui pointent des pointeurs.

Du coup, même en les zappant, ça risque de faire planter le jeu. Il faudrait essayer de comprendre la structure de cette table pour faire une extraction propre.

cloud2
Messages : 7
Inscription : 15 mai 2018, 17:47

Re: [UTILS] Hareng Tool

Message non lu par cloud2 » 16 mai 2018, 21:29

Oui c'est ça y a des pointeurs qui pointes d'autres pointeurs par moments, c'est minim, mais y en a. Et la table est coupée en deux aussi.

Si tu regardes bien le fichier, il y a deux type de textes.

1er : Start_create, Delete, continue.

On va dire ce sont des "titres" qui n'apparaissent pas dans le jeu.

2eme : tous les vrais textes, sauvegarde créée, Fichier effacé, etc...

Donc la structure va être la suivante.

Start_create
Textes relatifs à la création d'une sauvegarde
Load_progress
Textes relatif au chargement d'une sauvegarde
Etc...

La première table est pour les textes, et la seconde table pour les titres, mais dans les deux tables il y a des pointeurs qui pointes sur d'autres et des pointeurs qui pointes sur à quel moment le textes va apparaître dans le jeu, si dans la partie sauvegarde, Chargement ou autres de ce que j'ai compris.

Édit : bon j'ai été un peu plus technique, et copier coller les nouveaux pointeurs à la place des pointeurs originaux pour pas écraser les autres pointeurs immiscer au milieu. Heureusement y en avais à peu près 50, donc ça m'a pris une petite demi heure, mais au moins ça à l'air de marcher maintenant.


Merci de votre aide ;)

Répondre