petite question concernant oblivion CS

Tout ce qui tourne autour d'Oblivion et qui n'est pas du domaine de la Traduction et du côté technique du Modding.
Avatar du membre
Shadow she-wolf
Confrère
Messages : 830
Contact :

Re: petite question concernant oblivion CS

Message par Shadow she-wolf »

Roi liche a écrit :Surement mais beth n'a rien fait contre le projet, donc voila. Mais modifier un exe sans l'autorisation de la société qui a fait l'exe est interdit. Après il beth s'en fou, tant mieux ! :)
Le GECK en FR modifié l'exe aussi, et beth n'a rien fait non plus, ils s'en foutent tant qu'on copie pas leurs codes (je pense).
Voila.
Donc il n'y a pas de problème.


Le seul problème de ces traductions, ça vient d'OBSE, qui a eu la très mauvaise idée de faire une checksum d'Oblivion.exe et de TESConstructionSet.exe.
Bien entendu, en traduisant les exe, les checksum sont fausses, et donc OBSE décide de ne plus fonctionner.

Il va falloir que l'on aille voir cela avec eux, car leur système est tout sauf pérène : imaginez un Oblivion Code Patch qui sort demain, ils vont s'amuser vu leur rythme de développement... (ils acceptent actuellement 39 version d'Oblivion.exe, je vous laisse imaginer 39*NombreDeCorrectionsd'OPC)
Avatar du membre
Roi liche
Administrateur de la Confrérie
Administrateur de la Confrérie
Messages : 7743
Contact :

Re: petite question concernant oblivion CS

Message par Roi liche »

wiwi a changé, vous qui teniez tellement à vos autorisations (et au code pénal pour sent :D) ;)
Enfin je vais pas me plaindre non plus, tant que tu arrives à nous faire un joli PNOO en plus avec la modif de l'exe pour ce qu'il faut, ça me va :)
La traduction ce n'est pas du bête mot à mot mais une adaptation, une refonte complète pour coller au mieux ...
Avatar du membre
Shadow she-wolf
Confrère
Messages : 830
Contact :

Re: petite question concernant oblivion CS

Message par Shadow she-wolf »

Roi liche a écrit :wiwi a changé, vous qui teniez tellement à vos autorisations (et au code pénal pour sent :D) ;)
On va demander tout de même. :zzz:
Mais à priori, il n'y aura pas de problème, sinon je ne me serais pas lancée là-dedans.
Avatar du membre
Roi liche
Administrateur de la Confrérie
Administrateur de la Confrérie
Messages : 7743
Contact :

Re: petite question concernant oblivion CS

Message par Roi liche »

Ouais demandes, qu'on te dise pas non après, ça serait très con ^^
Mais je pense pas qu'il y est de problème non plus.... Enfin on verra bien :)
La traduction ce n'est pas du bête mot à mot mais une adaptation, une refonte complète pour coller au mieux ...
Avatar du membre
apdji
Légende de la Confrérie
Légende de la Confrérie
Messages : 9868
Contact :

Re: petite question concernant oblivion CS

Message par apdji »

Sinon, tu peux aussi essayer de passer par des libs, faire mumuse avec les dll, mais l`encore tu touches au caractère légal.

Justement, j'en avais discuté avec un prof suite à une proposition sur la conf' d'une trad' passant par des dll, c'était sur F3 si je me rappelle bien et en fait, si tu le fais à titre perso, chez toi pas de soucis, tu as acheté le jeu, l'exe tu peux en faire ce que tu veux.

Par contre toute distribution est normalement interdite.
Après si tu arrives à montrer l'utilité, la propreté de ton travail ou encore ce que tu as (su faire) à côté tu arrivera peut être à faire pencher la balance de ton côté si beth' est ouvert / à l'écoute de sa communauté.

On a eu l'exemple il y a peu avec Alien Swarm, roi est rentré en contact avec les dévs / distributeurs et ça a été concluants. Reste à savoir si Beth'est aussi ouvert que Valve et vu tout ce qu'ils ont fait ces derniers temps, j'en suis pas sûr du tout.

par contre, ça me fait penser que tu peu aussi essayer de rentrer en contact avec eux dès la phase de dév, mais ça peut être à double tranchant : soit c'est un énorma bon en avant dans tes travaux, soit leur fin pure est simple selon leur réponse ;)

Mais dans ce genre de chose, c'est surtout en terme de distribution que ça se joue et donc du nombre de personnes que ça touche. Par exemple le silver ça a été un vrai tollé car trop proche de la sortie et donc manque à gagner pour les dévs, alors que la trad' du GECK (non complète au passage) par ex ça les gène pas entre sa date de sortie et le fait que ce soit ujn toolset, perde pas de thune, ils s'en foutent beaucoup plus qu'on touche à un outil de modding qu'à leur jeu à proprement parlé. Qui plus est touché à un exe peut valoir crack pour eux s'il ne cherche pas plus loin que le bout de leur nez, donc vont gueuler.


Tiens autre exemple. La team franco-anglosaxone a l'origine d'oblivionline a failli être dans la mouise avec des démêlés avec Beth' car avant qu'il ne passe par des dll additionnels à obse, donc qu'ils touchent à obse et non à Obli lui même Beth' était radicalement opposé au projet ;)


Donc faut bien réfléchir à ce que l'on fait, dans quelle optique etc pour pouvoir avoir toutes les chances de son côté, ne pas se mettre les dévs / distributeurs à dos ;)
Image

"Pas de coercition ... un peu d'éducation ..." Moorelf
Avatar du membre
Shadow she-wolf
Confrère
Messages : 830
Contact :

Re: petite question concernant oblivion CS

Message par Shadow she-wolf »

apdji a écrit :Sinon, tu peux aussi essayer de passer par des libs, faire mumuse avec les dll
J'imagine bien essayer d'échanger l'ordre de passage en mémoire des paramètres d'une fonction à partir d'une .dll. :D
Il y a plus que du bête remplaçage d'octets à faire. D'où que j'ai parlé de déboggueur.
Après, pour le TESCS, je ne sais pas, je n'ai pas essayé...

Mais sinon, je pars simplement du principe que ce que je fais est exactement de la même nature que MPC. Beth' a donné sa bénédiction à MPC.

A mes yeux, le principal problème, c'est OBSE, pas Beth'...
Avatar du membre
apdji
Légende de la Confrérie
Légende de la Confrérie
Messages : 9868
Contact :

Re: petite question concernant oblivion CS

Message par apdji »

Si t'arrives à avoir la bénédiction de beth' c'est bon ;)

Pour les dll, avec du LD_PRELOAD, ce serait peut être faisable mais si tu pars sur des trucs comme ça, je suis pas sûr que Beth' soit d'accord car du LD_PRELOAD, ça touche à la sécu :D, vu qu'on s'en sert pour faire du détournement de fonction justement ;)
Image

"Pas de coercition ... un peu d'éducation ..." Moorelf
Avatar du membre
Shadow she-wolf
Confrère
Messages : 830
Contact :

Re: petite question concernant oblivion CS

Message par Shadow she-wolf »

apdji a écrit :Pour les dll, avec du LD_PRELOAD, ce serait peut être faisable mais si tu pars sur des trucs comme ça, je suis pas sûr que Beth' soit d'accord car du LD_PRELOAD, ça touche à la sécu :D, vu qu'on s'en sert pour faire du détournement de fonction justement ;)
Je crois que tu n'as pas saisit ce dont je parlais.
Par exemple, tu souhaites changer le nom des invocations.
Si tu invoques un galopin par exemple, tu as ceci qui s'affiche: "apdji's Galopin".

Si tu regardes avec un éditeur hexa, tu tombes sur cette chaîne: "%s's %s".
Tu en déduis qu'en fait, il y a une fonction de ce genre:

Code : Tout sélectionner

Print("%s's %s", NomPNJ, NomInvoc);
La première chose à faire consiste donc à inverser NomPNJ et NomInvoc. Tu ne peux pas faire cela en modifiant une .dll. :)
On ne modifie pas la fonction en elle-même, mais juste l'ordre de ses paramètres dans le code.

Après avoir fait mumuse avec des PUSH et autre MOV dans du code assembleur, tu finis par obtenir ceci:

Code : Tout sélectionner

Print("%s's %s", NomInvoc, NomPNJ);
Maintenant, lorsque tu invoques notre galopin, tu as ceci: "Galopin's apdji".

Il faut donc remplacer la chaîne maintenant.
Or, pas de chance, pour écrire "%s de %s", il te faut un octet de plus que pour écrire "%s's %s".
Comment faire donc ?
Stocker ta chaîne n'importe où, tu peux faire ça dans un fichier extérieur, mais c'est un peu bête: Oblivion.exe contient plein de "zones de bourrage d'octets" comme on nomme cela, c'est à dire plein d'octets qui ne servent à rien pour "bourrer".
Donc tu écris ta chaîne dans une chaîne de bourrage suffisament longue.
Il faut ensuite, demander à la fonction d'aller chercher sa chaîne de caractère dans une autre adresse, et dans ces conditions, tu fais mumuse avec des CALL dans le code assembleur.
Là encore, tu ne peux pas faire cela en modifiant une .dll. :)

Et voila, on a maintenant notre "Galopin de apdji".
Et quelques heures perdues. :zzz:
Avatar du membre
apdji
Légende de la Confrérie
Légende de la Confrérie
Messages : 9868
Contact :

Re: petite question concernant oblivion CS

Message par apdji »

le LD_LOADER, c'est pour de l'injection de code, donc de nouvelles dll qui font charger des fonctions à la place d'autres, c'est du court-circuitage de fonction en somme. Par exemple tu peux détourner un printf pour qu'il affiche autre chose (jouer avec des strcmp, strcat, etc), donc normalement en modifiant des fonctions entières, tu dois pouvoir y arriver. Mais bon, je pourrais t'en dire beaucoup plus, rentrer dans les détails, argumenter, car j'ai eu qu'un petit cours de sécu, que c'est pas non plus un truc qui me passionne donc j'ai pas forcément tout retenu à propos du chargement de lib et que l'asm (foutu korewar...) c'est pas non plus un truc qui me passionne.

Donc à mon avis y a une piste à creuser avec le préchargement de lib (pour te faciliter la tâche et faire plus de choses) mais je ne suis pas en mesure de t'aiguiller plus que ça
Image

"Pas de coercition ... un peu d'éducation ..." Moorelf
Répondre

Retourner vers « Histoires »