Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
[HEX]Sécuriser la calculatrice avec zLock
matrefeytontias le 03/08/2012 à 10:58
Salut les gens !
Voilà un p'tit programme hexa qui sécurise la calto via un pseudo-mot de passe ; en effet la calto va rester éteinte jusqu'à ce qu'on appuie
simultanément sur [Enter] [-] [÷] et [clear]/[annul]. Pratique pour remplacer l'appui sur Off ^^
Le code est compatible toutes z80 puisqu'il n'utilise aucune adresse ni romcall :
Code
3E02
D310
3EFD
D301
DB01
FEAA
20F6
3E03
D310
C9
End
0000
End
Il est court mais efficace : si vous oubliez la combinaison, vous n'avez plus qu'à enlever les piles !
J'ai pas encore pu le tester vu que l'émulateur de mon tél ne gère pas le multi-touch, mais normalement il ne devrait pas y avoir de problème

ld le 03/08/2012 à 12:08
Je viens d'essayer ! Bravo c'est tout simplement génial !

Dingue tout ce qu'on peut faire en ASM

matrefeytontias le 03/08/2012 à 12:44
On peut tout faire en ASM, c'est un peu le principe du langage ^^ld le 04/08/2012 à 23:35
8PA0P9T,H64XQ?A7R0DH3STY82WZTWFW13?.472N699?IPVBXO!Z
Clef 312

matrefeytontias le 06/08/2012 à 01:40
Gné ? -_oSamos le 06/08/2012 à 11:12
Laisse, il fait le malin avec son algo de cryptage !
tu ne voudrais pas traduire? je crois qu'on a pas la même version

Toujours des programmes qui déchirent Matref

ld le 06/08/2012 à 11:54
Pfff, c'est même pas drôle

linkakro le 06/08/2012 à 12:18
Bloquer la calculette ainsi c'est sympathique.
réponse au hs :
Il faut prendre la
version 2.4 du crypteur de ld pour bien faire.
Le code de ld était ceci :

" On peut tout faire en asm ? Même casser ce code ? XD "
(Moi j'avais pas compris de quoi il s'agissait avant que samsam explique.)
matrefeytontias le 06/08/2012 à 22:56
Ah on fait le malin avec du cryptage >D
T'vas voir ce que l'hexa peut faire pour crypter

blg_flg le 19/08/2012 à 18:14
Pas mal, mais TILOCK est quand même plus pratique.matrefeytontias le 19/08/2012 à 20:31
C'est quoi TILOCK ?linkakro le 20/08/2012 à 00:47
TILOCK , Le programme Basic de Sandro qui exploite deux programmes assembleur pour bloquer la touche ON et éteindre la calculatrice (mais attention, pas les deux en même temps)
matrefeytontias le 20/08/2012 à 16:45
Ah ouais, sauf que la taille de zLock qui est carrément plus petite, il faut appuyer sur 4 touches simultanément (c'est plus sûr qu'un mot de passe) et la touche ON ne break pas le programme sans avoir besoin de changer quoi que ce soit.linkakro le 20/08/2012 à 21:31
Ce serait intéressant que les touches soient accessibles en modifiant le code hexadécimal, par exemple avec un ".db" à la fin du code source.
D'ailleurs le codage des touches n'est pas nécessairement hexadécimal tant que c'est hors du champs de lecture normale de la calculatrice.
Cela se complique probablement mais ce serait une manière de surpasser tout le reste.ld le 20/08/2012 à 23:09
Super je n'est rien compris
Tu m'explique avec d'autres mots ce que tu voudrait faire s'il te plait ?

linkakro le 21/08/2012 à 00:17
Mon idée est de stocker la combinaison de touches à presser dans une chaine de caractères à la fin du programme.
La calculatrice ne lira pas un fragment de code si celui-ci est séparé du reste du code par un ret ou un saut.
Mais il est quand même possible d'y accéder par un moyen détourné (comme une romcall ou encore "ld hl,(bc)" par exemple)
Pour introduire des données dans programme, il est nécessaire d'insérer dans le code source la directive ".db" ou ".dw".
Par exemple regarde le classique HelloWorld qui stocke une chaîne de caractères en fin de programme.
De plus rien ne nous oblige à coder ces touches en hexadécimal >D
Il faut juste en tenir compte dans la partie executable.
Si cela se fait, cela permettrait de personaliser le programme autant que les autres programmes utilisant des combinaisons de touches.
Mais naturellement il y aurait l'avantage du caractère assembleur du programme.matrefeytontias le 21/08/2012 à 09:50
Nan mais c'est trop compliqué ça --' tu te rends pas compte, faut détecter quand l'utilisateur veut rentrer un nouveau mot de passe, faut détecter COMBIEN de touches, etc, c'est trop dur à coder. (en plus tu m'as volé mon smiley)linkakro le 21/08/2012 à 12:17
Je pensais modifier les datas manuellement. Donc un coup de zunprot pour y accéder, et l'utilisateur se casse un peu la tête pour suivre une table de codage des touches prévue à cet effet.
Si tu veux que le programme permette de modifier le code lui-même, je commence à entrevoir la complexité excessive. :S
Quant au nombre de touches, tant pis on le fixe une bonne fois à 4 ou 5.
Ce sera mon premier projet alors.
(Tu veux déposer un brevet pour ton smiley ?

Je n'ai aucun tallent pour imaginer des smileys et ce smiley m'a toujours manqué sur ce forum)
matrefeytontias le 21/08/2012 à 15:49
Bah vas-y, à partir de mon programme fais-en un qui cherche la combinaison de touches à la fin en tant que .db

m@thieu41 le 21/08/2012 à 16:45
Je pense que le problème ne viendrais pas forcément du nombre de touches à enfoncer (il "suffit" de le mettre au début de la chaine de codes de touches), mais plus du fait que tu utilise le direct imput dans ton prgm (enfin, d'après ce que j'ai décodé). Du coup:
_soit on se limite à la seule section de droite (c'est le plus rapide, mais ça limite la sécurité

)
_soit on précise le code hexa de la section ou se trouve la touche avant chaque code de touche (peu pratique pour l'utilisateur, mais relativement facile à mettre en place

)
_soit on utilise une romcall (getk ou getkey) ( mais on réduit la portabilité, et je ne sais pas si ça marche (vu que la calto est éteinte...)

)
_soit on utilise un autre encodage pour les touches (celui de la fonction getkey en basic par exemple), mais il faut rajouter des in et des out dans le code (c'est plus compliqué à mettre en place, mais plus facile pour l'utilisateur ensuite)
Voilà, j'aimerais avoir votre avis (pour savoir si je dis que des bêtises, ou si j'ai retenu quelque chose des tutos que j'ai suivi

)
matrefeytontias le 21/08/2012 à 19:12
Bah l'avantage du direct input c'est qu'on peut gérer plusieurs touches en même temps, vu qu'une touche appuyée → 1 bit unset. Tandis qu'avec les romcall _getkey et _getCSC, elles renvoient le code de la touche appuyée → 1 touche.m@thieu41 le 21/08/2012 à 19:25
C'est vrai, je n'avais pas pensé à ça

The K le 21/08/2012 à 23:16
Pourquoi ne pas utiliser de romcall getkey et le code serait une succession de touches à appuyer ?matrefeytontias le 22/08/2012 à 17:50
Parce que le code est vachement plus long et dur, sans être forcément plus efficace ._. en plus mon prgm débloque pas la calto si d'autres touches sont appuyées en plus des bonnes.m@thieu41 le 22/08/2012 à 21:18
Mais que si elles font parties de la section de droite non? Si on appuye en meme temps sur 2nd, ca marche quand meme non?
En plus, en utilisant getkey,si on appuye sur une autre touche,on peut faire un saut au debut pour recommencer, alors je ne vois pas ce que tu veux direThe K le 23/08/2012 à 00:10
Ma logique de programmeur basic est mise a mal par ce que tu dis ... Pour moi ça me paraît beaucoup plus simple ...
Mais bon c'est un peu la magie de l'assembleur ... À la fois si simple et si compliqué ...matrefeytontias le 23/08/2012 à 10:29
Ouais, mais pas si on appuie sur d'autres touches du même groupe (à savoir la colonne de droite).
@The K : en ASM, y'a plusieurs méthodes pour lire les entrées clavier : les romcalls (les fonctions normales, comme _getKey qui attend une touche et _getCSC qui en détecte une) et le direct input, c'est à dire la communication directe avec le matériel (beauuucoup plus rapide). Moi je fais du direct input, donc je dois bien connaître les spécifications matérielles du clavier. Par exemple, les touches sont structurées en groupes, dont les flèches, les touches F1 à F5, et chaque colonne de touche est un groupe.The K le 23/08/2012 à 12:37
Quelle est l'instruction pour faire un direct input sur l'ordinateur ?

matrefeytontias le 23/08/2012 à 18:56
Euuuh je sais pas ^^'The K le 23/08/2012 à 19:54
Matref-euh xD
Va falloir que t'aprennes a reprogrammer ASm sur ordi ...eArnoow le 16/09/2012 à 17:51
On revient à la ligne comme toi ou tous le hexadécimal doit être écrit collé ?Samos le 16/09/2012 à 17:57
les deux fonctionnent, il vaut mieux écrire sur des lignes séparées puis supprimer les lignes afin de ne pas faire d'erreureArnoow le 16/09/2012 à 18:03
J'ai une erreur quand je le lance, après avoir regroupé tout l'hexadécimal, au niveau du premier End.
J'ai fait un truc qui fallait pas ?
Au moins ça a rien supprimé xDSamos le 16/09/2012 à 18:21
Oui
:code en hexa en une ligne
:End
:0000
:End
Comme ça ça devrait être bon
eArnoow le 16/09/2012 à 18:24
Ok super merci ça marche (merci aussi Mat sur le chat

m@thieu41 le 03/11/2012 à 14:13
Heu... j'ai juste une remarque à faire: zlock n'éteint pas vraiment la ti si?
Donc du coup on utilise les piles à max, comme si elle était tout le temps allumée (gestion de l'écran en moins), non?
Y a-t-il un moyen d'éteindre réellement la calto, pour économiser les piles?

linkakro le 05/11/2012 à 21:14
Oui, il faut executer la/les romcall d'extinction pour réellement éteindre la calculatrice s'il y en a , ou bien il faut reproduire l'OS.
Cependant je ne maîtrise pas du tout les flags qui concernent la touche On et l'extinction.
En tout cas la calculatrice n'est jamais hors tension, mais en consomation minimale. Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.