Forum

Catégorie : Discussions générales
Forum : Articles
Vues : 10672
Réponses : 82
Type : discussion
Etat : réponses autorisées

[ASTUCE] empêcher l'édition ou cacher un programme - Page 1 / 2

Persalteas le 27/06/2012 à 10:52
Bonjour !

Un article pour garder ces précieux codes hexadécimaux sous la main !

Vous avez peut-être remarqué qu'il existe des programmes qui n'apparaissent pas dans le menu EDIT de la calculette, et dont on ne peut pas voir le code source.

Ils ont été protégés. De même, il est possible de "gommer" l'existence d'un programme, dans tous les menus de la TI que ce soit EXEC, EDIT, MEM, ou le menu d'échange, grâce à un code fraîchement programmé par notre spécialiste hexadécimal français, Matrefeytontias.

Je vais donc vous présenter deux codes, le système ZPROT/ZUNPROT et le système ZHIDE/ZUNHIDE.

NE TESTEZ CES PROGRAMMES QUE SUR TI-82 STATS/TI-82 STATS.FR/TI-83.

ILS NE SONT PAS COMPATIBLES TI-83 Plus/TI-84 Plus.

Chaque système a besoin de 3 programmes dont voici les codes. Comme tout programme en assembleur, LA MOINDRE ERREUR dans les codes causera très probablement un CRASH MEMOIRE ET UNE PERTE DE DONNEES. Irrécupérables, bien sur.
Faites donc attention en recopiant, et je vous conseille de sauvegarder vos programmes importants sur la TI d'un ami jusqu'à être surs que le programme fonctionne normalement et qu'il ne provoque pas de crash.

PROTECT: empêcher de voir le code source d'un programme:
source
• Auteur: Alexis Jehan (alias Alexvire ou Alexis)

• Taille: 381 octets

• Vous en avez assez que vos camarades modifient vos programmes ? Alors PROTECT est pour vous. Il permet de protéger ou déprotéger vos programmes pour qu'ils apparaissent ou non dans le menu "EDIT". Vous devez pour cela utiliser le programme PROTECT et non les autres.

PROTECT
Code
Lbl 0
EffEcr
Menu(">>> PROTECT <<<<","PROTEGER",1,"DEPROTEGER"
,2,"QUITTER",3
Lbl 1
Input "prgm",Chaîne0
Chaîne0
Envoi(9prgmZPROT
Goto 0
Lbl 2
Input "prgm",Chaîne0
Chaîne0
Envoi(9prgmZUNPROT
Goto 0
Lbl 3
Output(4,6,"ALEXIS
EffVar Chaîne0
Output(1,1,"


ZPROT (Ne faites pas d'erreurs !)
Code
CD8E42
3E72
323A80
CD2A44
DA
7B
46
E61F
FE04
C26C46
213980
3605
23
1A
4F
0600
13
13
EB
EDB0
CD2A44
DA7B46
3606
C9
End
0000
End


ZUNPROT (Ne faites pas d'erreurs !)
Code
CD8E42
3E72
323A80
CD2A44
DA
7B
46
E61F
FE04
C26C46
213980
3606
23
1A
4F
0600
13
13
EB
EDB0
CD2A44
DA7B46
3605
C9
End
0000
End


HIDE: Planquer le programme. Il est toujours là, mais impossible a détecter avant déprotection.
source

• Auteur: Mattias Refeyton (alias Matrefeytontias)

HIDE
Code
Lbl 0
EffEcr
Menu("HIDE","CACHER",1,"REAPPARAITRE",2,"QUITTER",3
Lbl 1
Input "prgm",Chaîne0
Chaîne0
Envoi(9prgmZHIDE
Goto 0
Lbl 2
Input "prgm",Chaîne0
Chaîne0
Envoi(9prgmZUNHIDE
Goto 0
Lbl 3
EffVar Chaîne0
Output(1,1,"


ZHIDE
Code

213980
3604
23
36AA
23
3609
23
3600
CD2A44
D8
EB
23
113980
010900
EDB0
213980
3605
CD2A44
D8
11FCFF
19
7E
D640
77
C9
End
0000
End


ZUNHIDE
Code
213980
3604
23
36AA
23
3609
23
3600
CD2A44
D8
EB
23
113980
010900
EDB0
213980
3605
23
7E
D640
77
CD2A44
D8
11FCFF
19
7E
C640
77
C9
End
0000
End
Persalteas le 27/06/2012 à 14:16
merci beaucoup, c'est 50 fois plus clair comme ça... glasses.gif
Est-ce que ça ne prend pas plus d'octets, par contre ?
matrefeytontias le 27/06/2012 à 14:23
Si, chaque retour à la ligne prend 1 octet ... mais on peut toujours les enlever après avoir tout copié.
linkakro le 27/06/2012 à 18:23
Stocker Chaîne0 dans Rép est innutile pour HIDE contrairement à PROTECT, car le programme Z(UN)HIDE de Matrefeytontias utilise directement la chaîne0.
Ainsi on peut simplifier :
Code
Input "prgm",Chaîne0
Envoi(9prgmZHIDE

Input "prgm",Chaîne0
Envoi(9prgmZUNHIDE
En revanche Protect permet de choisir sa chaîne, mais il faut la stocker dans Ans.
matrefeytontias le 27/06/2012 à 18:30
J'utilise Str0 parce que c'est plus simple pour moi niveau code ^^'
eArnoow2 le 19/09/2012 à 21:36
Par contre, les programmes ne sont plus accessibles, même par un autre programme ! Vous ne connaîtriez pas un programme permettant de les cacher tout en pouvant les utiliser (par exemple les prog en hexa style zhide ou zunprot) ?
The K le 19/09/2012 à 21:40
A ma conaissance ça n'existe pas ...

Tu peux en créer un si tu veux tongue.gif
eArnoow le 20/09/2012 à 08:26
Quand j'aurais fini mon Pong xD
blg_flg le 20/09/2012 à 17:36
Citation
Par contre, les programmes ne sont plus accessibles, même par un autre programme ! Vous ne connaîtriez pas un programme permettant de les cacher tout en pouvant les utiliser.

Si. Ça doit être possible. ZHIDE cache le programme dont le nom est dans Chaîne0 (il me semble que c'est la 0...). Donc je pense que c'est faisable si tu fais un truc comme ça (le programme XYZ est caché, mais tu veux l'utiliser):
Code
:blablabla
:"XYZ->Chaîne0
:Send(9prgmZUNHIDE
:prgmXYZ
:Send(9prgmZHIDE
:blablabla
Cytropus le 20/09/2012 à 18:48
Exact, mais si le prof arrive et que tu arrête brutalement le programme, le programme est "dé-cacher" donc ça sert plus à rien happy.gif
m@thieu41 le 20/09/2012 à 20:04
Peut-être (mais je ne suis pas sûr du résultat crazy.gif ) qu'on pourrait cacher le programme quand on le lance?
Ex:
Code
:blablabla
:"XYZ->Chaîne0
:Send(9prgmZUNHIDE
:prgmXYZ
:blablabla

PrgmXYZ
Code

:"XYZ->Chaîne0
:Send(9prgmZHIDE
:blablabla

Mais je me demande ce qui se passera quand le prgm ASM en arrivera au C9 après l'avoir cachégodgrace.gif
eArnoow le 20/09/2012 à 20:24
Tu testes et tu me dis clown.gif
J'ai pas de câble et j'ai pas envie de tout perdre laugh.gif
m@thieu41 le 20/09/2012 à 20:45
J'ai testé sur émulateur, et ça marche impec bigmouth.gif
Cytropus le 20/09/2012 à 21:07
Sur émulateur, peut-être cry.gif
mais je viens d'essayer sur ma 82stat.fr et ça marche pas eyeonly.gif
blg_flg le 20/09/2012 à 21:18
Si ça marche sur émulateur (lequel d'ailleurs?) ça doit marcher on calc.
m@thieu41 le 20/09/2012 à 21:23
Pour un émulateur (wabbitemu) de TI 83 (non plus), ça marche impec, je ne vois pas pourquoi ça ne marcherais pas sur ta calto...
blg_flg le 20/09/2012 à 21:26
Effectivement. Ça devrait fonctionner. ahh.gif
Cytropus le 20/09/2012 à 21:26
je sais pas : j'ai caché le prog X
Code
Envoi(9prgmZHIDE
:suite du jeu


et j'ai utilisé Y
Code
"X->Chaine0
:Envoi(9prgmZUNHIDE
:prgmX


résultat : il me met "fait" sans lancer le jeu cupsmiley.gif
m@thieu41 le 20/09/2012 à 21:36
Je ne comprends pas: chez moi ça avait marché impec (après, le programme était caché et tout...) extraterre.gif
Je n'ai malheureusement pas fait de sauvegarde, et TIProgramEditor ne veut plus se lancer, j'ai la flemme de tout recopier encore une fois à la main, je réessayerais demain crazy.gif
eArnoow le 20/09/2012 à 22:29
Tu peux me ré expliquer comment faire pour cacher un programme tout en pouvant l'utiliser et le lancer depuis d'autres ?
C'est en majeur partie pour cacher ZPROT ZUNPROT ZHIDE ZUNHIDE OFF ONLOAD et ZNOLOAD.
Merci winkle.gif
linkakro le 20/09/2012 à 22:46
Du calme : Alex développe un unique programme assembleur rassemblant la les codes de protection et cache, et avec un mot-de-passe.
https://espace-ti.forumactif.c[...]-pour-le-moment

EDIT : par la suite dans ce sujet, Alex à contredit mes croyances : il compte combiner les programmes assembleurs via un programme basic.
(cela ruine complètement l'intérêt que je lui portait)

EDIT : j'ai fait un lapsus sur le dernier "basic" où j'avais écrit "assembleur" avnat de corriger
eArnoow le 20/09/2012 à 23:28
J'ai lu la discussion mais je vois pas vraiment d'amélioration mais plutôt un regroupement.
Ce sera possible de pouvoir appeler un programme tout en le cachant ou pas ?
linkakro le 20/09/2012 à 23:53
Il faut demander une amélioration à matrefeytontias : un programme est caché parce que son nom a été corrompu au niveau de la première lettre, et cela n'empêche peut-être pas une execution passant par l'assembleur.
Il est déjà possible de lancer depuis un programme assembleur (signé Matrefeytontias) un autre programme dont le nom est dans une chaîne en Basic, il doit bien être possible de gérer en assembleur une liste de programmes ou une saisie en assembleur pour ensuite effectuer l'execution même si le programme est caché.

EDIT: en gros tu reprends des codes comme ZEXECBAS pour les adapter à des programmes cachés.
eArnoow le 20/09/2012 à 23:59
J'ai pas tout compris à partir de la deuxième phrase crazy.gif
Mat, si tu vois ce message, peux-tu modifier ton prog pour que mes profs secondaires soient cachés mais soient lancables depuis d'autres programmes ?
Amen
matrefeytontias le 21/09/2012 à 08:16
Aaah ça va pas être possible malheureusement.

Pour cacher un programme, j'ajoute 64 au code de la première lettre, ce qui en fait un caractère non numérique et donc plus affichable.

Par contre ce que je peux faire c'est un programme hexa à part spécialement conçu pour lancer les programmes cachés.
Cytropus le 21/09/2012 à 08:19
Vas-y, t'as carte blanche !
eArnoow le 21/09/2012 à 13:21
Ça serait parfait !
linkakro le 22/09/2012 à 16:15
Oui fais-donc !
Je pensais justement modifier ZEXECBAS pour l'adapter aux programmes cachés.
AlexRider38 le 22/09/2012 à 20:27
linkakro a écrit :
Du calme : Alex développe un unique programme assembleur rassemblant la les codes de protection et cache, et avec un mot-de-passe.
https://espace-ti.forumactif.c[...]-pour-le-moment

Ce n'est pas un unique prog en ASM mais un assemblage ASM + TI-basic
m@thieu41 le 05/11/2012 à 20:09
Heu... j'ai un problème: crazy.gif
J'ai recopié il y a 2-3 jours les prgm Zhide/Zunhide/Zprot/Zunprot pour cacher certains de mes prgm, et les protéger contre l'édition.
Ce matin, j'ai voulu modifier certains prgm, je les ai donc décaché, déprotégés, jusque là tout va bien.
Puis j'ai recaché un prgm dont je n'avais plus besoin, pour m'occuper d'un autre.
Une fois les modif' finies, j'ai voulu cacher ce prgm, et là, impossible ahh.gif
J'ai relu le code de Zhide, je n'y ai rien modifié...
Et Zunhide ne marche plus aussi frozen.gif
Je ne comprends vraiment pas, est-ce que j'aurais pu faire une fausse manip' qui les aurait bloqués (meme si je vois pas comment c'est possible)
Je suis un vrai boulet moodforlove.gif
Merci d'avance! bigmouth.gif
blg_flg le 06/11/2012 à 23:44
Ça m'est arrivé aussi. Je ne comprenais pas (et matref non plus laugh.gif ), j'ai recommencé plusieurs fois et ça a marché... crazy.gif
m@thieu41 le 07/11/2012 à 09:16
Tu as eut besoin de réinitialiser la calto, ou tu as juste lancé plusieurs fois ZHIDE/ZUNHIDE? crazy.gif
blg_flg le 07/11/2012 à 11:41
J'ai fait plein de trucs a priori stupides, après avoir vérifié plein de fois mes codes. J'ai changé de chaîne, j'ai lancé sans le programme en basic, etc. crazy.gif Je sais pas ce que j'ai fait mais ça a marché, avant de ne plus fonctionner une seconde fois. Je ne l'utilise donc plus.

En tout cas je n'ai pas réinitialisé. winkle.gif
m@thieu41 le 07/11/2012 à 12:11
Ok merci.
Bah moi aussi j'ai fait des trucs stupides: j'ai mis le nom dans toutes les chaines, j'ai lancé avec et sans prgm basic, j'ai revérifié les codes (au moins 10 fois), j'ai lancé ZHIDE à la place de ZUNHIDE, et inversement, j'ai essayé avec des prgm protégés/déprotégés, j'ai refait un nouveau prgm ZUNHIDE pour tester... crazy.gif
Mais ça ne marche pas cry.gif
Au pire, le prgm que j'ai caché n'est pas très important, c'était juste un prgm lanceur, donc je pourrais toujours sauvegarder les prgm sur ordi, réinitialiser, et les remettre. Et je n'utiliserai plus JAMAIS ZHIDE, même si je le trouvais fichtrement pratique crazy.gif

EDIT: Finalement, j'ai trouvé un truc: avant de mettre le nom du prgm dans chaîne0, je supprime cette chaine... et là, ça marche crazy.gif
blg_flg le 07/11/2012 à 12:31
Moi aussi j'ai tenté d'inverser les deux programmes. laugh.gif

Ça marche à tous les coups en effaçant Chaîne0 ? C'est bizarre...
m@thieu41 le 07/11/2012 à 12:33
Ouai c bizarre...
Mais tant que ça marche, je vais pas me plaindre winkle.gif
Cytropus le 10/11/2012 à 22:25
Vous êtes pas obligé d'utiliser une Chaîne winkle.gif
vous faites : "[nom du prgm]"
[enter]
et ça suffit ! glasses.gif
linkakro le 10/11/2012 à 22:48
FAUX !
Tu confonds avec Protect.
Protect utilise Rép/Ans et Hide utilise Chaîne0/Str0.
Demande à Matrefeytontias. C'était plus simple pour lui que de faire comme Alexvire.
La preuve est que j'ai modifié mon gestionnaire de programme avec un espace dans Ans et que cela a quand même marché via Input Str0.
Cytropus le 10/11/2012 à 22:56
Si les chaines sont vides, il prendra Ans cupsmiley.gif
je le fait à chaque fois comme ça sur ma stat.fr
En tout cas, pour moi, ça marche happy.gif
m@thieu41 le 10/11/2012 à 23:27
En Asm, Chaine0 et ans ont rien a voir ^^ (enfin,j espere ne pas dire une enorme betise, mais je pense pas winkle.gif )
Pour son prgm,matref a besoin de la chaine de chaine0, si elle n existe pas,la calto renvoie une erreur,pas le contenu de ans. C est comme si tu disais que si on ecrivait "TESTA" au lieu de "TESTB" c la meme chose parce qu il va chercher le plus proche crazy.gif
linkakro le 10/11/2012 à 23:44
La chaine n'est pas vide sinon cela ne ferait rien. J'ai encore testé en supprimmant la chaine au début du programme puis soit en remplissant la chaine par une expression valide soit quelque chose de faux et chaque fois la même chose avec Rép.
Le seul cas valide est de remplir la chaine indépendamment de Rép.

Ou alors cela veut dire que Matrefeytontias a laissé passer une faille impromptue dans la lecture de la VAT / des variables mais cela m'étonnerais fort.
Cytropus le 11/11/2012 à 14:37
bon, bon, si vous voulez, je laisse tomber crazy.gif
chez moi ça marche, chez vous ça marche pas, j'ai peut être fait une erreur de copie (pas trop grave heureusement) beer.gif
Mekra le 28/11/2012 à 20:29
Bonsoir je cherche le programme HIDE pour ti 82 stats.fr en fichier 83p ou alors m'indiquer comment l'insérer dans ma calculatrice. Merci d'avance happy.gif

(Je ne m'y connait pas en calculatrice happy.gif)
blg_flg le 28/11/2012 à 20:45
Il est en première page, tu sais...
Mekra le 28/11/2012 à 22:20
Salut et merci de ta réponse, or je ne le trouve toujours pas en téléchargement sur la première page. je vois bien le code mais je ne sais pas comment faire pour l'entrer dans la Ti.

Merci d'avance happy.gif
Cytropus le 28/11/2012 à 22:29
ben....
t'ouvres Ti-éditor sur internet, tu fais "nouveau programme" pour ti 82 et tu y rentre le code beer.gif
linkakro le 28/11/2012 à 22:52
Il demande comment transférer le fichier sur la ti.
Il faut un logiciel de connexion comme Ti-Connect et un câble. L'utilitaire de transfert s'appele TI-Device-Explorer.
Sinon recopie le code à la main dans la TI. Pour ça utilise le menu prgm\nouveau et prgm\edit.
Cytropus le 28/11/2012 à 22:56
Oups minied.gif

j'avais pas compris, quand il a parlé de téléchargement, j'ai pensé à du z80 eyeonly.gif
Mekra le 28/11/2012 à 23:04
J'ai essayé avec Ti éditor sa me met sintaxe error. Après pour le taper moi même je connais pas les fonctions et tout je sais pas où elles se trouvent :/
Cytropus le 28/11/2012 à 23:09
Ti éditor peut présenter quelque erreur avec le Ti basique
pour les fonctions, tout est dans la signature de linka kiss.gif