vendredi 29 décembre 2017

Raspberry épisode 29 : Module LDR ou Photorésistance





Le Module est analogique et ne peut marcher que sur une entrée analogique de Arduino. (Le raspberry n'en n'ayant pas).

ou passer par un autre module de convertion analogique/numerique (ADC)
https://leanpub.com/RPiMRE/read

ou passer par un condensateur
https://www.youtube.com/watch?v=dPwW9zmX84E
https://pimylifeup.com/raspberry-pi-light-sensor/
http://www.instructables.com/id/Raspberry-Pi-GPIO-Circuits-Using-an-LDR-Analogue-S/

ou un controlleur Texas Instrument (TI)
http://marcandreuf.blogspot.fr/2015/06/how-to-photoresistor-on-raspberry-pi.html

ou n'avoir qu'un resultat 1 ou 0
https://www.raspberrypi.org/magpi/raspberry-pi-fridge-monitor/

C'est cette dernière solution que j'ai retenu, car mon Raspberry est  dans un placard et je souhaite savoir si le placard est ouvert (et reçoit de la lumière) ou fermé (et ne reçoit rien)

Mes branchements :

sur PI0:
#PIN S :  1 (3.3V)
#PIN centre: 12 (BCM18)
#PIN - : 6 (Masse)

sur PI2
#PIN S :  non branché
#PIN centre: 12 (BCM18)
#PIN - : 6 (Masse)

Étrangement le code qui fonctionne bien avec le Raspberry PI 0 ne fonctionne pas avec le PI2.
en débranchant le PIN S du module tout fonctionne avec le PI2.




Le Code en Python:
J'ai repris le code suivant :
https://www.raspberrypi.org/magpi/raspberry-pi-fridge-monitor/
et l'ai adapté pour moi:

 ldr_num.py:

import time
import RPi.GPIO as GPIO
import urllib2

LIGHT_PIN = 18   # photoresistor pin
EVENT = 'fridge_alert'

# Configure the GPIO pin
GPIO.setmode(GPIO.BCM)
GPIO.setup(LIGHT_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)

if GPIO.input(LIGHT_PIN) == 0:
            # Its light (door open)
    print("ouvert")
#            time.sleep(3)
else:
    print("ferme")
#            time.sleep(3)

GPIO.cleanup()

mon script lancé par CRON: (lance le script Python et recupère en variable l'état du placard

#recupération des information de l'unite photosensible
placard=$(python /home/pi/LDR/ldr_num.py)
 et
#enregistrement dans fichier Log
sudo echo $jour"    "$temperature"    "$humidite"    "$placard";" >> /home/pi/dhtxx/logtemp.txt

#enregistrement inversé dans un fichier ilog
valeur=$(echo $jour"    "$temperature"    "$humidite"    "$placard";")
sudo echo $valeur | cat - /home/pi/dhtxx/ilog.txt > temp && mv temp  /home/pi/dhtxx/ilog.txt

Raspberry épisode 28 : DHT on reviens dessus en mode electronique

Si vous n'avez pas un module tout fait, mais juste un composant electronique, voici comment l'utiliser.
(Je l'ai fait car mon module ne répondait plus, je pensais qu'il était grillé, j'en ai donc recommander sur internet)
(En fait, je n’exécutait pas la commande PIGPIOD)


La 1ere Broche, sur la résistance 4,7 KOhms , puis alimentation électrique 5V
La 2eme Broche, sur l'autre bout de la résistance, et le PIN DATA du Raspberry (ex BCM17)
La 3ème Broche, sur rien
La 4ème Broche sur la Masse.

-Branchement sur le Raspberry, comme d'habitude , l'aide se trouve sur ce site: https://fr.pinout.xyz
-Pour reconnaitre une résistance, n'hésitez pas à utiliser des sites comme: https://www.dcode.fr/code-couleur-resistance
ou
https://www.digikey.fr/fr/resources/conversion-calculators/conversion-calculator-resistor-color-code-5-band 

Bravo à vous :)

mercredi 13 décembre 2017

VBS popup MSGBOX qui ne bloque pas l'execution du script VBS





Si vous aussi souhaitez afficher un message dans un script VBS sans pour autant que le script ne s'arrête le temps que l'utilisateur ne clic sur OK, voici un exemple un peu moche mais qui marche :


'declaration des variables
dim wshShell

set wshShell=CreateObject("Wscript.Shell")

'création d'un fichier vbs temporaire
wshShell.run("%comspec% /c echo MSGBOX (""YOUR MESSAGE"") > C:\temp\test_multi_msgbox\message.vbs")

'ok
'wshShell.run "%comspec% /c cscript C:\temp\test_multi_msgbox\message.vbs",0
'wshShell.run "%comspec% /c cscript C:\temp\test_multi_msgbox\message.vbs",0
'nok
'wshShell.run "%comspec% /c cscript C:\temp\test_multi_msgbox\message.vbs",1'
'wshShell.run "%comspec% /c cscript C:\temp\test_multi_msgbox\message.vbs",1
'ok
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",2
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",2
'nok
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",3
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",3
'nok
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",4
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",4
'nok
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",5
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",5
'ok mais en bas
wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",6
wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",6
'ok
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",7
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",7
'nok
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",8
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",8
'nok
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",9
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",9
'nok
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",10
'wshShell.run "%comspec% /c call C:\temp\test_multi_msgbox\message.vbs",10

'wshShell.run "%comspec% /Q cscript C:\temp\test_multi_msgbox\message.vbs",3, True
'wshShell.run "%comspec% /Q call C:\temp\test_multi_msgbox\message.vbs",4, True

'wshShell.run "%comspec% /c /Q cscript C:\temp\test_multi_msgbox\message.vbs",5, True
'wshShell.run "%comspec% /c /Q call C:\temp\test_multi_msgbox\message.vbs",0, True


msgbox("le script se poursuit malgré les msgbox précédant")
'suppression du fichier temporaire VBS
wshShell.run("%comspec% /c del C:\temp\test_multi_msgbox\message.vbs /f /q")


samedi 9 décembre 2017

Raspberry épisode 27 : log inversé

Parce que, comme moi, vous ne voulez pas dérouler des dizaines de page de log pour afficher la dernière valeur, voici comment généré de logs inversés, c'est à dire des variables avec chaine qui s'inscrivent en haut de fichier:
echo 'task goes here' | cat - todo.txt > temp && mv temp todo.txt
ou
sudo echo $valeur | cat - ilog.txt > temp && mv temp  ilog.txt



mardi 21 novembre 2017

Créer des réunion Skype sous Outlook, mais je n'ai pas l'option


Il faut que le module soit lancé au démarrage d'outlook.
(Déjà vous devez avoir Outlook et Skype ou Lync ou Communicator)
ajouter la clef de registre suivante :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Outlook\Addins\UCAddin.LyncAddin.1]
"LoadBehavior"=dword:00000003

La valeur à 3 indique lancement du module au démarrage d'Outlook
:)

[edit: 14/06/2018]
Oui, mais cela ne fonctionne pas mieux.

Ok, on recharge la dll dans regsvr32 avec la commande suivante:
en commande DOS, executer en administrateur:
regsvr32 "C:\Program Files\Microsoft Office\root\Office16\UCAddin.dll "

Non ce n'est toujours pas bon.
Executer Outlook en administrateur:
Fichier/Option/Complément/gérer: Complement COM, cliquez sur "Atteindre"
Selectionnez
"Skype meeting add-in for " supprimer, puis ajouter
"C:\Program Files\Microsoft Office\root\Office16\UCAddin.dll "
et reboot outlook

Mais maintenant je suis en hors connexion... .

VBS: rendre vos utilisateurs autonomes (Mapper le lecteur personnel s'il saute)

Petit script en VBS pour remapper le lecteur personnel (ici U:) selon les informations fournies par l'AD

'On Error Resume Next
Dim objSysInfo, objUser, status
Set objSysInfo = CreateObject("ADSystemInfo")

' Currently logged in User
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)



msgbox(objUser.displayName & vbCrLf & "----------------------" & vbCrLf & objUser.homeDirectory)

set objShell = CreateObject( "WScript.Shell" )
set objScriptExec = objShell.Exec("net use u: /delete")
set objScriptExec = objShell.Exec("net use u: " & objUser.homeDirectory & " /p:o")


Wscript.Quit

vendredi 27 octobre 2017

VBS: rendre vos utilisateurs autonomes (Quel est mon IP ?)

Petit script pour afficher les adresses IP V4 sur la machine :


set objShell = CreateObject( "WScript.Shell" )
set objScriptExec = objShell.Exec("ipconfig")

do while not objScriptExec.StdOut.AtEndOfStream
    strLine = objScriptExec.StdOut.ReadLine
    if (inStr(strLine, "IPv4")) then
        intPos = inStr(strLine, ":") + 1
        strIP = mid(strLine, intPos)
        strIPs = strIPs & vbNewLine & strIP
    end if
loop

msgbox strIPs

vendredi 13 octobre 2017

VBS: rendre vos utilisateurs autonomes (expiration du mot de passe, compte verrouillé)

Marre que vos utilisateurs ne sachent pas quand expire leur mot de passe windows sur le domaine ?
ou que leur compte soit verrouillé ou non.

Voici deux petits scripts en VBS qui iront chercher dans l'annuaire LDAP pour leur donner les informations.

Quand expire mon mot de passe.vbs
Const MIN_IN_DAY = 1440
Const SEC_IN_MIN = 60

On Error Resume Next
Dim objSysInfo, objUser
Set objSysInfo = CreateObject("ADSystemInfo")

' Currently logged in User
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)

intAge = Int(Now - objUser.PasswordLastChanged)

'INDIQUEZ LE NOM DE VOTRE DOMAINE sur la ligne ci-dessous
Set objDomain = GetObject("WinNT://DOMAINE")
intMaxPwdAgeSeconds = objDomain.Get("MaxPasswordAge")

intMaxPwdAgeSeconds=((intMaxPwdAgeSeconds/SEC_IN_MIN)/MIN_IN_DAY)
msgbox(objUser.displayName & vbCrLf & "----------------------" & vbCrLf & "Votre mot de passe expire dans : " & intMaxPwdAgeSeconds-intAge & " jours" & vbCrLf & "Soit le : " & objUser.PasswordLastChanged + intMaxPwdAgeSeconds-intAge)

[Edit:17/05/18]changez la dernière ligne du script "quand expire mon mot de passe" par celle-ci:
msgbox(objUser.displayName & vbCrLf & "----------------------" & vbCrLf & "Votre mot de passe expire dans : " & intMaxPwdAgeSeconds-intAge & " jours" & vbCrLf & "Soit le : " & Now + intMaxPwdAgeSeconds-intAge)




Mon compte est-il verrouillé.vbs
'On Error Resume Next
Dim objSysInfo, objUser, status
Set objSysInfo = CreateObject("ADSystemInfo")

' Currently logged in User
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
    If objUser.IsAccountLocked = 0 Then
        status=("Votre compte n'est pas bloqué")
        Else
    status=("Votre compte est bloqué")
    End If



msgbox(objUser.displayName & vbCrLf & "----------------------" & vbCrLf & status)

Set objUser = Nothing
Set NewPassword = Nothing

Wscript.Quit

Posé sur un serveur avec accès en lecture seul à tous les utilisateurs du domaine, et communiquez !!!!

vendredi 6 octobre 2017

Raspberry épisode 26 : version du GPIO

Bonjour

Parce que je n'arrive pas à refaire fonctionner mon Keypad en 4x4, je reviens aux bases.

Ci-joint un petit script qui permet de connaître la version du GPIO.
Parfait pour savoir si cela fonctionne bien.



python ./version_gpio.py

version_gpio.py
import RPi.GPIO as GPIO
print ("version de GPIO : " + GPIO.VERSION)

mercredi 27 septembre 2017

DOS: Gestion utilisateur / Groupe, local/AD

Les groupes locaux




ci-joint les commandes de l'invite de commande pour la création/gestion des groupes locaux:

Création d'un utilisateur :
net user nom_utilisateur /add
net user nom_utilisateur mot_de_passe /add

Supprimer un utilisateur:
net user nom_utilisateur /del

Lister les utilisateurs locaux:
net user

Activation / Désactivation d'un utilisateur:
net user nom_utilisateur /active:yes
net user nom_utilisateur /active:no

Configuration MDP:
net user nom_utilisateur mot_de_passe
(saisir le mdp)
net user nom_utilisateur *

Changer le mdp à la prochaine ouverture de session:
net user nom_utilisateur /logonpasswordchg:yes

Droit de changer son mdp ou non
net user nom_utilisateur /passwordchg:yes
net user nom_utilisateur /passwordchg:no

Définir  la longueur des mots de passe:
net accounts /minpwlen:longueur

Définir la durée minimum de changement du mot de passe:
net accounts /minpwage:Jours

Définir l'historique de mot de passe réutilisable:
net accounts /uniquepw:Nombre entre1 et 24

Super Administrateur:
Net user administrateur /active:yes
Net user administrateur /active:no

Créer un groupe :
net localgroup nom_du_groupe /add

Supprimer un groupe:
net localgroup nom_du_groupe /delete

Ajouter un utilisateur à un groupe:
net localgroup Administrateur_groupe utilisateur /add

Supprimer un utilisateur d'un groupe:
net localgroup Administrateur_groupe utilisateur /delete

Ajouter un commentaire à un groupe:
net localgroup nom_du_groupe /comment:"Ce groupe est inactif."

La même chose sur le domaine:
 /domain
exemple: net localgroup exec stevev ralphr jennyt /add /domain

mardi 26 septembre 2017

VBS : AD expiration password

Bonjour,

Ci-joint un script qui rappellera selon un compte la durée maximum de vie d'un mot de passe, le nombre de jours écoulées et restant ainsi que les date de dernier changement et de prochain changement.


Const MIN_IN_DAY = 1440
Const SEC_IN_MIN = 60

CN="CN=NOM Prenom, OU=OU1,OU=Utilisateurs,OU=OU2, DC=microsoft,DC=com"

Set objUser = GetObject("LDAP://" & CN & "")

intAge = Int(Now - objUser.PasswordLastChanged)

Set objDomain = GetObject("WinNT://DOMAINE")
intMaxPwdAgeSeconds = objDomain.Get("MaxPasswordAge")

intMaxPwdAgeSeconds=((intMaxPwdAgeSeconds/SEC_IN_MIN)/MIN_IN_DAY)

msgbox(intMaxPwdAgeSeconds & "-" & intAge & "= "& intMaxPwdAgeSeconds-intAge & " jours avant expiration du mot de passe" & vbCrLf & objUser.PasswordLastChanged & " ---- " & objUser.PasswordLastChanged + intMaxPwdAgeSeconds-intAge )
Ne pas omettre de changer le CN selon l'utilisateur, et le DOMAINE par Microsoft ou votre domaine



VBS : Script en RunAs


Pas envie de se prendre la tête pour lancer un VBS en RunAs, avec ce script, il suffit de glisser votre script à executer sur celui-ci.


On Error Resume Next
dim wshShell
set wshShell=CreateObject("Wscript.Shell")

wshShell.run("RunAs /noprofile /user:DOMAINE\CPTE_ADMIN " & Chr(34) & "cmd /c\" & Chr(34) & WScript.Arguments(0) & "\" & Chr(34) & Chr(34))
WScript.Sleep 1000
wshShell.Sendkeys ("MOT_DE_PASSE~")
Wscript.Quit

Informations à changer : DOMAINE, CPTE_ADMIN, MOT DE PASSE, et surtout laisser le "~ "à la fin du mot de passe

vendredi 22 septembre 2017

Lire une carte NAVIGO, VITALE, Bancaire, ticket resto, Carte SIM

Plusieurs articles existent déjà sur les outils la manière de faire.
Ceux-ci seront certainement bien plus complet et intéressant que celui-ci, mais il aura au moins le mérite d'exister et de montrer mon expérience.

1°) le matériel, le lecteur fourni par la RATP. (marque WATCHDATA  / modèle :W1981)
Branché en USB avec une version supérieur à Windows Vista, tout s’installe sans intervention.
Je pensais acheter un lecteur NFC, or il ne s'agit que d'un lecteur de puce (d'où le prix)
Donc première surprise, il faut insérer la carte dans le lecteur Watchdata.

2°)Le logiciel : Cardpeek
Reconnu pour lire les cartes à Puce au format Calypso (Navigo), en le testant, on trouve tout de suite beaucoup d'informations.

3°)Les informations:
On trouve beaucoup d'informations, que je détaillerais ultérieurement.
ex: les zones, les derniers passage, date heure, etc..


4°) Quelques Tests:

Carte NAVIGO : Calypso
Les informations remontées :
[i] EnvNetworkId (size=24)  : France NETWORK  901
[i] EnvApplicationValidityEndDate (size=14)  : 03/08/2026




3 Dernier passages enregistrée:
[i] EventTime (size=11)  : 09h12
[i] EventCode (size=8)  : Train Exit
[i] EventServiceProvider (size=8)  : SNCF
[i] EventLocationId (size=16)  : Secteur 30
[f] Special events (id=2040)


Cartes VITALE : vitale2 , ne fonctionne qu'avec les cartes avec photo et braille.
ce qui n'est pas mon cas, donc pas d'exemple.

Carte Bancaire : EMV,
Quelques informations recupéré:
[i] Application Label (id=50,size=10)  : VISA DEBIT
[i] Language Preference (id=5F2D,size=2)  : fr
[b] Application Transaction Counter (ATC) (id=9F36,size=2)  : 177
[b] Last Online ATC Register (id=9F13,size=2)  : 175
[b] PIN Try Counter (id=9F17,size=1)  : 3
[i] Cardholder Name (id=5F20,size=26)  : NOM PRENOM TITRE
[i] Application Effective Date (id=5F25,size=3)  : 01/09/2016
[i] Application Expiration Date (id=5F24,size=3)  : 31/10/2018
[i] Application Usage Control (id=9F07,size=2)  : FF 00h
  [i] Application Usage (id=1.8) :> Valid for domestic cash transactions
  [i] Application Usage (id=1.7) :> Valid for international cash transactions
  [i] Application Usage (id=1.6) :> Valid for domestic goods
  [i] Application Usage (id=1.5) :> Valid for international goods
  [i] Application Usage (id=1.4) :> Valid for domestic services
  [i] Application Usage (id=1.3) :> Valid for international services
  [i] Application Usage (id=1.2) :> Valid at ATMs
  [i] Application Usage (id=1.1) :> Valid at terminals other than ATMs
[i] Issuer Action Code - Denial (id=9F0E,size=5)  : 00 10 B8 00 00h
  [i] Condition (id=2.5) :> Requested service not allowed for card product
  [i] Condition (id=3.8) :> Cardholder verification was not successful
  [i] Condition (id=3.6) :> PIN Try Limit exceeded
  [i] Condition (id=3.5) :> PIN entry required and PIN pad not present or not working
  [i] Condition (id=3.4) :> PIN entry required, PIN pad present, but PIN was not entered
[i] Issuer Action Code - Online (id=9F0F,size=5)  : BC 60 04 98 00h
  [i] Condition (id=1.8) :> Offline data authentication was not performed
  [i] Condition (id=1.6) :> ICC data missing
  [i] Condition (id=1.5) :> Card appears on terminal exception file
  [i] Condition (id=1.4) :> DDA failed
  [i] Condition (id=1.3) :> CDA failed
  [i] Condition (id=2.7) :> Expired application
  [i] Condition (id=2.6) :> Application not yet effective
  [i] Condition (id=3.3) :> Online PIN entered
  [i] Condition (id=4.8) :> Transaction exceeds floor limit
  [i] Condition (id=4.5) :> Transaction selected randomly for online processing
  [i] Condition (id=4.4) :> Merchant forced transaction online
[i] Issuer Action Code - Default (id=9F0D,size=5)  : BC 60 04 80 00h
  [i] Condition (id=1.8) :> Offline data authentication was not performed
  [i] Condition (id=1.6) :> ICC data missing
  [i] Condition (id=1.5) :> Card appears on terminal exception file
  [i] Condition (id=1.4) :> DDA failed
  [i] Condition (id=1.3) :> CDA failed
  [i] Condition (id=2.7) :> Expired application
  [i] Condition (id=2.6) :> Application not yet effective
  [i] Condition (id=3.3) :> Online PIN entered
  [i] Condition (id=4.8) :> Transaction exceeds floor limit
[r] record (id=1,size=21)

Exemple d'opération (enregistre les 48 dernières transactions)
  [i] Amount, Authorized (size=6)  : 18,84€
  [i] Cryptogram Information Data (size=1)  : X
  [i] Terminal Country Code (size=2)  : FRANCE
  [i] Currency code (size=2)  : €
  [i] Transaction Date (size=3)  : 23/09/2017
  [i] Transaction Type (size=1)  : PURCHASE / CASH
  [i] tag DF52 (size=4)  :
  [i] Application Transaction Counter (ATC) (size=2)  : 176 numéro d'opération





Carte Ticket Restau : EMV,
Un petit message:
"Issue a GET PROCESSING OPTIONS command to the MASTERCARD application", oui ou non, c'est la même chose.

http://www.cartes-bancaires.com/sites/default/files/vous/catalogue_cartes_cb_de_test_et_de_developpement_maj08032017.pdf
http://www.paymentcardtools.com/
https://www.emvlab.org/emvtags/show/t9F34/


Les informations que l'on retrouve :
LANGUAGE PREFERENCE
PIN TRY COUNTER

[i] Cardholder Name (id=5F20,size=18)  : NOM et PRENOM

[i] Application Expiration Date (id=5F24,size=3)  : 19 04 30h
[i] Application Effective Date (id=5F25,size=3)  : 16 04 18h
[i] Country Code (id=5F28,size=2)  : 02 50h
[i] Application Usage Control (id=9F07,size=2)  : FF 00h
  [i] Application Usage (id=1.8) :> Valid for domestic cash transactions
  [i] Application Usage (id=1.7) :> Valid for international cash transactions
  [i] Application Usage (id=1.6) :> Valid for domestic goods
  [i] Application Usage (id=1.5) :> Valid for international goods
  [i] Application Usage (id=1.4) :> Valid for domestic services
  [i] Application Usage (id=1.3) :> Valid for international services
  [i] Application Usage (id=1.2) :> Valid at ATMs
  [i] Application Usage (id=1.1) :> Valid at terminals other than ATMs
[i] Issuer Action Code - Default (id=9F0D,size=5)  : FC 78 EC F8 80h
  [i] Condition (id=1.8) :> Offline data authentication was not performed
  [i] Condition (id=1.7) :> SDA failed
  [i] Condition (id=1.6) :> ICC data missing
  [i] Condition (id=1.5) :> Card appears on terminal exception file
  [i] Condition (id=1.4) :> DDA failed
  [i] Condition (id=1.3) :> CDA failed
  [i] Condition (id=2.7) :> Expired application
  [i] Condition (id=2.6) :> Application not yet effective
  [i] Condition (id=2.5) :> Requested service not allowed for card product
  [i] Condition (id=2.4) :> New card
  [i] Condition (id=3.8) :> Cardholder verification was not successful
  [i] Condition (id=3.7) :> Unrecognised CVM
  [i] Condition (id=3.6) :> PIN Try Limit exceeded
  [i] Condition (id=3.4) :> PIN entry required, PIN pad present, but PIN was not entered
  [i] Condition (id=3.3) :> Online PIN entered
  [i] Condition (id=4.8) :> Transaction exceeds floor limit
  [i] Condition (id=4.7) :> Lower consecutive offline limit exceeded
  [i] Condition (id=4.6) :> Upper consecutive offline limit exceeded
  [i] Condition (id=4.5) :> Transaction selected randomly for online processing
  [i] Condition (id=4.4) :> Merchant forced transaction online
  [i] Condition (id=5.8) :> Default TDOL used


exemple d'une des 10 dernières opérations:
[r] record (id=3,size=20)
  [i] Cryptogram Information Data (size=1)  : (achat ?)40h
  [i] Amount, Authorized (size=6)  : 00 00 00 00 13 80h = montant :13€80
  [i] Currency code (size=2)  : 09 78h = (la valeur monnaitaire) €
  [i] Transaction Date (size=3)  : 17 08 22h : 22/08/2017
  [i] Application Transaction Counter (ATC) (size=2)  : 00 D4h : 212 (numéro de l'opération)
  [i] Card Verification Results (CVR) (size=6)  :  = Code de vérification





Carte SIM :
pas de carte SIM au format Carte de crédit sous la main.

Voici quelques chose d'interessant, j'ai trouvé une carte SIM oublié dans un tiroir du travail, et voyons si nous pouvons trouver des informations :

[h] answer to select (size=15)
  [i] RFU (size=2)  : 00 00h
  [i] File size (size=2)  : 00 0Ah
  [i] File ID (size=2)  : 2F 05h
  [i] File type (size=1)  : 04h
  [i] Command flags (size=1)  : 00h
  [i] Access conditions (size=3)  : 01 00 44h
  [i] File status (size=1)  : 05h
  [i] Length of extra GSM data (size=1)  : 02h
  [i] File structure (size=1)  : 00h
  [i] Length of a record (size=1)  : 00h

Bref, rien de très lisible, continuons...

[r] record (id=1,size=89)  : 80 01 40 A0 10 A4 06 83 01 0B 95 01 08 A4 06 83
                             01 0C 95 01 08 80 01 1A A4 06 83 01 0A 95 01 08
                             80 01 01 90 00 84 01 D4 A4 06 83 01 0A 95 01 08
                             FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                             FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                             FF FF FF FF FF FF FF FF FFh

24 enregistrements de la sorte, rien d'exploitable pour le moment

et puis beaucoups plus bas:

[f] Abbreviated dialling numbers (id=6F3A)
  [h] answer to select (size=15)
    [i] RFU (size=2)  : 00 00h
    [i] File size (size=2)  : 1B 58h
    [i] File ID (size=2)  : 6F 3Ah
    [i] File type (size=1)  : 04h
    [i] Command flags (size=1)  : 00h
    [i] Access conditions (size=3)  : 11 00 22h
    [i] File status (size=1)  : 01h
    [i] Length of extra GSM data (size=1)  : 02h
    [i] File structure (size=1)  : 01h
    [i] Length of a record (size=1)  : 1Ch
  [r] record (id=1,size=28)  :
Presque une centaine de contacts, allant de portable PAPA à Coca  etc...

Verdicte, ne laissez pas trainer vos cartes SIM même obsolètes.


D'autres sections sont à prévoir avec d'autres cartes, et peut êtres une réécriture ???




http://pannetrat.com/Cardpeek/En%20fran%C3%A7ais/
http://www.journaldulapin.com/2014/01/30/cardpeek-lire-des-cartes-vitale-navigo-bleue-sous-mac-os-x/
http://blog.13x.fr/2010/12/lecteur-de-smartcards-korrigo-navigo.html
 
https://www.spotterswiki.com/emv/cardpeek.html
https://ludovicrousseau.blogspot.fr/2012/10/cardpeek-tool-to-read-contents-of.html
http://tech.springcard.com/2010/cardpeek-open-source-tool-to-read-the-content-of-smartcards/
http://sybond.web.id/blog/2014/09/25/bruteforce-apdu-select-using-lua-script/



vendredi 15 septembre 2017

VBS (+PSEXEC) : Ajout utilisateur du domaine au groupe administrateur local d'une machine distante

Bonjour,



Ci-joint un petit script (associé à PSEXEC pour ajouter des droits administrateurs à un utilisateur sur une machine distante)

1°) Récuperer PSEXEC sur le PC du technicien (c:\windows\system32\psexec)
2°) 

On Error Resume Next
Const Quote = """"
dim wshShell

domain = InputBox ("Nom du domaine","Nom du domaine","Le nom de votre domaine")
login = InputBox("Nom utilisateur?")
pc= InputBox("Nom du PC")

login = domain & "\" & login
set wshShell=CreateObject("Wscript.Shell")
commandtorun=("%comspec% /k psexec \\" & pc & " net localgroup Administrateurs /add " & Quote & login & Quote)
wshShell.run (commandtorun)

Wscript.Quit

Et voilà

Garantie matériel

Voici les principales URL pour vérifier la garantie votre matériel :

HP:
https://support.hp.com/us-en/checkwarranty

LENOVO:
http://pcsupport.lenovo.com/fr/fr/warrantylookup

Surface:
https://mybusinessservice.surface.com/fr-FR/pages/welcome.aspx

Dell:
http://www.dell.com/support/home/fr/fr/frdhs1/products?app=warranty

Apple:
https://checkcoverage.apple.com/fr/fr/


En espèrant que certains y trouvent leur compte.

mercredi 13 septembre 2017

Invite de commande, CMD, quelques rappels

Etant donné que j'ai fait ceci pour Linux, je ne vois pas pourquoi je ne le ferai pas pour Windows.

Donc voici quelques commandes pour l'invite de commande ou le DOS comme j'aime à l'appeler (alors que c'est une bêtise)

Hostname: Afficher le nom de l'ordinateur
Ipconfig: afficher la configuration IP
ipconfig /all : afficher la configuration IP (Complete)
ipconfig /flushdns: vider le cache DNS

winver: afficher la version de Windows
getmac: afficher les adresses MAC des péripheriques réseau

Timeout /T 30 : faire un compte à rebour de 30 secondes
CTRL+X: arreter la commande en cours

MSRA: Assistance Windows
msra /offerRA 127.0.0.1: Assistance windows sur l'ip 127.0.0.1
mspaint: afficher paint
winword: afficher word
notepad : afficher le blocnote
calc: afficher la calculette

ipconfig | clip : Copier le résultat de Ipconfig dans le presse-papier (pour faire un Ctrl+V)
WUAUCLT /Detectnow : Forcer la mise à jour windows
gpupdate /force : Forcer la mise à jour des GPO
GPresult /? : voir les GPO en cours

wmic product get name : Voir les logiciels installés sur l'ordinateur
wmic produc where "name like iTunes" call uninstall /nointeractive :Désinstaller itunes par exemple

powercfg.exe /hibernate on : activer l'option pour permettre l'hibernation du PC (veille prolongée)

Boot des Machines

Trop de machines de touche et d'option, voici un petit récapitulatif des touches à appuyer et des options selon les marques :

Ces options sont à effectuer au démarrage de la machine

HP
F9 =boot select
F10 =BIOS
F12 =PXE


LENOVO
F1 =BIOS Config
F10 =TESTS hardware
F12 =Boot Select

SURFACE
Power + Moins = Boot sur clef USB
Power + Plus = Setup config

mardi 12 septembre 2017

Raspberry épisode 25 : Multiples connexion réseau (Plusieurs réseaux Wifi et adresse IP adaptés au réseau)





Si comme moi, vous avez un Raspberry Pi 0W et que vous vous balader régulièrement avec entre votre réseau Wifi de la maison et le partage de connexion de votre smartphone, vous aurez besoin de définir un paramétrage différent pour chaque connexion.

Ci-joint ma configuration :
Wifi à la maison :Freebox : 192.168.0.255
Wifi sur smartphone : Wiko : 192.168.43.255

Les smartphone ont la grosse problématique de ne pas pouvoir configurer le partage.
Nous restons sur une classe C en sous réseau 43. Non modifiable si le téléphone n'est pas rooté.

Définir les connexion dans
/etc/wpa_supplicant/wpa_supplicant.conf
 le id_str de la connexion et la priorité

    network={
        ssid="freebox"
        psk="wpa_password"
        id_str="home"
        priority="3"
    }
   
    network={
        ssid="Wiko"
        psk="wpa_password"
        id_str="smartphone"
        priority="1"
    }
Paramétrer la configuration
/etc/network/interfaces
Mettre en WPA-ROAM et définir l'adressage static 
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
allow-hotplug wlan1
iface wlan1 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface smartphone inet static
address 192.168 .43.52
gateway 192.168.43.1
netmask 255.255.255.0

iface home inet static
address 192.168.0.52
gateway 192.168.0.254
network 255.255.255.0

Source:https://www.thepolyglotdeveloper.com/2016/08/connect-multiple-wireless-networks-raspberry-pi/




Services Windows



Services.msc, oui mais comment s'appelle mon service ?

Pour accéder aux services Windows : services.msc


Commandes
Démarrer un service : net start BDESVC
Arrêter un service : net stop BDESVC

Liste des services les plus utiles:
Bitlocker (chiffer son disque dur) : BDESVC : service de chiffrement de lecteur BitLocker
RPC(accès distant au PC): RpcSs : Appel de procédure distante (RPC)
WIA: stisvc : Acquisition d'image Windows (WIA)
ICS : SharedAccess : Partage de connexion internet

dimanche 10 septembre 2017

Windows et le Wifi

Ci-joint quelques commandes concernant le Wifi sous windows :

Afficher toutes les configuration Wifi qui ont été enregistrée sous windows:
netsh wlan show profil

Supprimer la clef Wifi d'une connexion spécifique:

netsh wlan show profile FREEBOX key=clear 

Créer un hotspot:
netsh wlan set hostednetwork mode=allow ssid=test_wifi key=motdepassewifi
 et le démarrer
netsh wlan start hostednetwork
 net wlan stop hostednetwork

mercredi 6 septembre 2017

Arduino : Episode 1 : le ventilateur fou




 Bonjour,


Voici une nouvelle section, au même titre que le Raspberry, vous trouverez ici mes expériences avec l'Arduino.
Le gros avantage étant que c'est vraiment pas chère.

Pourquoi Arduino et pas Raspberry ?
Le Raspberry est un ordinateur, il lui faut un temps pour s'allumer, lancer ses services mais est beaucoup plus puissant et plus cher.
Un Arduino est un contrôleur, il est bête, et effectue toujours les mêmes tâches. Mais il a l'énorme avantage d'être abordable et rapide dans son exécution.

Je voulais adapter mon projet Raspberry Episode 19 car il était vraiment trop long à s'allumer.
Bref, avant de savoir si j'avais un bus, j'étais déjà parti.

J'ai acheter, il y a presque 1 an maintenant un Arduino Nano pour 4€ sur Ebay.
Un peu de soudure par ci par là (sur ce modèle il faut jouer du fer à souder) et le tour est joué.

 Le Code:

 Ensuite il faut connecter en Micro-USB son arduino à son PC, installer le logiciel Arduino
(sélectionner le modèle, dans outils, type de carte, ainsi que la connectique :COM3)


void setup() {
  // put your setup code here, to run once:
pinMode(13,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
digitalWrite(13, HIGH);
delay(4000);
digitalWrite(13, LOW);
delay(3000);
}
 Le code situé dans le Void setup ne sera utilisé qu'une fois.
Celui dans le loop sera exécuté en boucle.

Ici, on applique un mode sortie au PIN13
puis on boucle sur envoyer de l'electricité au port 13
attendre 4000 millisecondes (4 secondes)
arrêter d'envoyer l'electricité
attendre 3000 millisecondes, et on recommence : on allume, on attend, on éteint, on attend, on allume ...

Connexion:



Pour la connectique, on branche un câble durant sur la PIN Masse (GND) de l'arduino et un autre sur le PIN 13 (digitale). Avec un ventilateur, pas de bornage (- ou +) ca tourne dans un sens ou dans l'autre. Plus tard avec une LED on fera attention et on ajoutera une résistance pour ne pas la griller.
On vérifie le code (avec l'îcone Coche), on téléverse (avec l'îcone Fleche) et aussitôt le script est utilisé.


Pour information, il est conseillé de sauvegarder votre travaille.
Une fois le code injecté dans l'arduino, il ne peut pas être reversé vers le logiciel.



mardi 5 septembre 2017

Visio à plusieurs sans prise de tête

Zut , j'ai raté le développement de Hello sur firefox !
Depuis 1 an le service est HS.
Mais des alternatives vraiment sympa existent (gratuit, rapide, videos, à plusieurs
:

  • Talky : fournit de la vidéo et du partage d'écran en utilisant WebRTC.
  • Cisco Spark : créez des salons pour les appels vidéo, la messagerie en groupe et le partage.
  • Appear.in : de la vidéo en groupe jusqu'à huit personnes.
  • Jitsi Meet : des appels vidéo en groupe et du partage d'écran en utilisant WebRTC. 
https://support.mozilla.org/fr/kb/hello-cessera-firefox-49

Merci à la fondation Mozilla pour nous laisser libre :)

Electronique : variateur de lumière

Voici une présentation d'un variateur de lumière, type halogène. et quelques explications.

Je vois pleins de composants, mais qu'est-ce que c'est ?
http://www.sonelec-musique.com/electronique_theorie_composants_formes.html

-Bornier
Entrée / Sortie du courant sur la gauche

-Fusible (blanc et metal) au centre
Brule si court circuit ou surchauffe.

-Résistance en R2
Limite l'intensité du courant. Il ne me semble pas qu'elle soit borné, mais on fait attention à garder une cohérence. Il y a de jolies couleurs dessus qui permettent de connaître sa valeur.
https://www.apprendre-en-ligne.net/crypto/passecret/ohm.html

-Potentiomètres rectilignes (faders)
Variateur en haut (noir) pour faire varier l'intesité du courant
Il s'agit d'une résistance ajustable selon la valeur que nous souhaitons.

-LED à côté du carré jaune (le voyant du variateur)
C'est une ampoule, borné (ou le + et le - sont important, et qui peut grillé si l'intensité est trop importante, donc on insert avant une resistance qui réduira l'intensité du courant)

-Le carré Jaune : le condensateur
Ce bidule, si j'ai bien compris stock l'intensité du courant (car il s'agit de deux plaque de conducteur séparé par un isolant, s'il est en forme de cylindre, c'est que les planques ont été enroulés)
Il existe des condensateurs borné (c'est à dire que le + et le moins sont important) et d'autres non. 

-Triac en noir à droite, soudé au radiateur (metal qui fait presque le tour)
https://www.astuces-pratiques.fr/electronique/le-triac-principe-de-fonctionnement
Il semble que ce soit une espèce d'interrupteur electrique qui laisse passer le courant s'il recoit une tension minimum.

-La bobine en cuivre
Sert à distribuer l'electricité de manière plus douce, et pas limiter les chutes de tensions soudaines.
https://openclassrooms.com/courses/l-electronique-de-zero/la-bobine
http://www.sonelec-musique.com/electronique_realisations_gradateur_lumiere_001.html

Merci à l'article suivant:
https://gradot.wordpress.com/2015/01/12/variateur-a-triac/

Peut-être reviendrais-je sur l'organisation de tous ces composants....


samedi 26 août 2017

Raspberry épisode 24 : Capteur UltraSon HC_SR04



Bonjour,
Si, comme moi, vous cherchez des informations sur ce petit outil, vous trouverez de quoi le bidouiller un petit peu, ci-dessous:

Pour information, il s'agit d'un capteur UltraSon qui analyse le temps la durée necessaire à une onde ultrason pour faire un aller retour. (en connaissant la vitesse de propagation du son dans l'air et en divisant par 2 , pour le retour) On obtiens des valeurs approchants entre 10cm et 4m.

Mon expérience aura été très décevante du point de vue de la fiabilité des résultats, peut être est-ce dû à la qualité de mon matériel (acheté moins de 2€ sur E-bay).

Première surprise, alors que tous les composant sont prêt à l'emploi, ici, il faudra ajouter 2 résistances (1k et 2k)
Plusieurs exemples ont été testé et j'ai du réviser mes pont diviseur
avec des résistances de 330 ohms et 470 ohms on à une sortie à 2,9V et non 3,33V.
avec des résistances de 4.7 Kohms et 10 Kohms on à une sortie à 3,4V
avec des résistances de 11 Kohms et 12 Kohms on à une sortie à 2,6V
avec des résitances de 1 Kohms et 2,2 Kohms on à une sortie à 3,4V
donc le plus proche de 3,3V c'est un pont diviseur à 1k et 2k.

Si vous avez déjà des résistances et que vous ne connaissez pas leur valeur, allez voir ici:
http://nononux.free.fr/index.php?page=elec-brico-outils#!elec-brico-outil-code-couleur-resistance

Rappel sur les PIN:
http://fr.pinout.xyz/#


Branchements:




Sur le HC_SR04 :
-brancher un cable (rouge) du VCC au PIN 2 du raspberry (Alimentation 5V)
-brancher un cable (gris) du TRIG au PIN 16 du raspberry (BCM23)
-brancher un cable  (bleu clair) du ECHO à la résistance 1K
-brancher un cable (noir) du GND à la sortie de la résistance 2K

-Brancher un cable (vert) de la sortie de la résistance 1K au PIN 18 du raspberry(BCM24)
-Brancher la résistance 2K à la sortie de la résistance 1K
-Brancher un cable (bleu foncé) de la sortie de la résistance 2K au PIN 6 du raspberry (Masse)


https://www.youtube.com/watch?v=l93pyOYXFU0
https://www.youtube.com/watch?v=PdkPCBJWRx4
https://www.pubnub.com/wp-content/uploads/2015/06/fritzing-ultrasonic-400-1024x555.png

http://www.manuel-esteban.com/lire-un-capteur-ultrason-hc-sr04-avec-un-raspberry-pi/
https://www.modmypi.com/blog/hc-sr04-ultrasonic-range-sensor-on-the-raspberry-pi
http://www.framboise314.fr/mesure-de-distance-par-ultrasons-avec-le-raspberry-pi/
http://www.framboise314.fr/docs/The-MagPi-issue-27-en.pdf

Logiciel :
Récupérer un projet GitHub
exemple:
git clone https://github.com/framboise314/HC-SR04

Si vous avez créé comme moi un répertoire inutile et pleins de choses, pour l'effacer utilisez ceci:
rm -Rf monrepertoire

Finalement, je ne suis pas passé par GitHub mais par un script fourni chez OneDrive depuis la vidéo Youtube ici: https://www.youtube.com/watch?v=l93pyOYXFU0
http://1drv.ms/1QsrPwb

Ci-joint la petite commande WGET pour récupérer :
wget -P /chemin/du/répertoire_cible http://www.site.org/fichier_distant
 

Les résultats sont affiché toute les secondes, mais je ne trouve pas le résultat convainquant.

jeudi 24 août 2017

Brancher un Ventilo en USB

Pour brancher un ancien ventilateur en USB, voici comment effectuer le branchement.
A gauche, l'USB
A droite, le câble du ventilateur

-Noir sur Noir
-Rouge sur Jaune
Le reste, on n'en a pas besoin

mardi 1 août 2017

Raspberry épisode 23 : Ecran 3.5 inch RPi LCD V3.0






Si vous aussi avez besoin d'installer ce formidable écran 3.5 inch RPi LCD V3.0, ne cherchez plus la solution est là !
 
Après avoir passer 2 mois à tenter de l'installer sans résultat concluant, j'ai changé de driver et en moins de 2 minutes, l'écran était fonctionnel.



 J'ai suivi la documentation du site :
http://helloraspberrypi.blogspot.fr/2016/07/waveshare-35-320480-raspberry-pi-lcd.html

présenté en vidéo sur:
https://www.youtube.com/watch?v=bc6frD_AVjw


Le driver est disponible sur le site:

http://www.waveshare.net/wiki/3.5inch_RPi_LCD_%28A%29
http://www.waveshare.net/w/upload/0/00/LCD-show-170703.tar.gz

Ci-joint les commandes :



mkdir ecran
cd ecran
wget http://www.waveshare.net/w/upload/0/00/LCD-show-170703.tar.gz
gzip -d LCD-show-170703.tar.gz
tar -xvf LCD-show-170703.tar
./LCD-show/LCD35-show

ou

sudo rm -rf LCD-show
git clone https://github.com/goodtft/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show/
sudo ./LCD35-show

 L'avantage de ce dernier code, c'est qu'on trouve la commande :

./rotate.sh 90

ou 180,270, etc... pour tourner simplement l'écran après le reboot automatique.



le raspberry reboot tout seul, et tout fonctionne
Ecran + tactile



pour le WGET:https://www.memoinfo.fr/tutoriels-linux/telecharger-avec-wget/

pour le GZIP:http://dev.petitchevalroux.net/linux/decompresser-fichier-linux.206.html
pour le TAR: https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/archiver-et-compresser
 

PS: j'avais tester d'autres solutions qui ne fonctionnaient pas:
l'écran s'affichait bien, mais le tactile allait en haut au lieu d'aller à droite : impossible de tourner l'écran et de changer la configuration du touch.
https://marazt.wordpress.com/2016/12/06/setup-a-3-5-inch-lcd-touch-screen-display-module-320-x-480-v3-on-raspberry-2-with-raspbian-jessie/ 
http://paradoxetemporel.fr/6492-tuto-branchement-et-configuration-ecran-tactile-tontec-3-5-pouces-pour-raspberry-pi-2.html
https://www.youtube.com/watch?v=7G4cVlAqAGI 

https://www.raspberrypi.org/documentation/configuration/raspi-config.md
https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi/easy-install
 https://www.youtube.com/watch?v=A0qPmDOsw3M

https://iwannabe1337.wordpress.com/2016/03/26/rpi-set-raspberry-pi-lcd-3-5-inch-rpi-lcd-v3-0/
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=158102
http://www.circuitbasics.com/setup-lcd-touchscreen-raspberry-pi/
http://ozzmaker.com/piscreen-quick-start-guide/#SD%20card%20Image%20for%20PiScreen
http://ozzmaker.com/piscreen-driver-install-instructions-2/
http://www.spotpear.com/learn/EN/raspberry-pi/Raspberry-Pi-LCD/Raspberry-Pi-_Rotate-the-screen-display.html
https://www.raspberrypi.org/forums/viewtopic.php?f=108&t=120785
https://www.raspberrypi.org/forums/viewtopic.php?f=100&t=98069
http://www.spotpear.com/learn/EN/raspberry-pi/Raspberry-Pi-LCD/Raspberry-Pi-_Rotate-the-screen-display.html
http://www.circuitbasics.com/raspberry-pi-touchscreen-calibration-screen-rotation/
http://www.circuitbasics.com/setup-lcd-touchscreen-raspberry-pi/

http://www.circuitbasics.com/raspberry-pi-touchscreen-calibration-screen-rotation/
https://www.root42.de/blog/?p=6
lister les modules
lsmod
détail du module fbtft (https://doc.ubuntu-fr.org/tutoriel/tout_savoir_sur_les_modules_linux)
modinfo fbtft
dmesg
https://raspberrypi.stackexchange.com/questions/60872/inverted-gpio-touchscreen-using-99-calibration-conf
https://github.com/swkim01/waveshare-dtoverlays/blob/master/README.md
https://marazt.wordpress.com/2016/12/06/setup-a-3-5-inch-lcd-touch-screen-display-module-320-x-480-v3-on-raspberry-2-with-raspbian-jessie/
http://www.circuitbasics.com/raspberry-pi-touchscreen-calibration-screen-rotation/

jeudi 6 juillet 2017

Kindle hack

Si comme moi, vous avez une vieille Kindle 4ème génération (No Touch) ou K4NT pour les intimes, et que vous trouvez ses performances très décevantes, avant de le revendre, vous pouvez l'upgrader grâce à quelques hacks.

Attention, cet article ne concerne QUE le Kindle 4NT (celui de l'image), pour les autres versions, internet est vaste, je suis certains que vous trouverez par vous-même.



1°) JailBreak
Télécharger le fichier kindle-k4-jailbreak-1.8.N.zip 
Dézippez le
Branchez le kindle sur votre ordinateur et copiez les fichiers/dossiers suivant à la racine du Kindle:
-fichier "data.tar.gz"
-dossier "diagnostic_logs"
-fichier "ENABLE_DIAGS"

Dans Windows, déconnecter le Kindle, Retirez le câble USB entre le PC et le Kindle
Redémarrer le Kindle (Bouton Menu, Paramètres, Bouton Menu, Redémarrer)
Après le redémarrage, sélectionnez "D) Exit, Reboot or Disable Diags" avec la croix multidirectionnel
Sélectionnez "R) Reboot System"
Sélectionnez "Q) To continue"
(il vous sera demander d'utiliser la "FW Left" il s'agit du bouton gauche de la croix multidirectionnel.)
Attendez 20 secondes, vous aurez un écran Jailbreak et le Kindle redémarrera à nouveau.
Vous aurez un nouveau livre intitulé "You are Jailbroken" qui confirme la bonne réalisation de l'opération.

Source :https://wiki.mobileread.com/wiki/Kindle4NTHacking#Jailbreak

2°) USBNet Package
Télécharger et dézipper le fichier :kindle-usbnetwork-0.57.N-k4.zip
Branchez le kindle sur votre ordinateur et copiez les fichiers/dossiers suivant à la racine du Kindle:
-Fichier "Update_usbnetwork_0.57.N_k4_install.bin"
Dans Windows, déconnecter le Kindle, Retirez le câble USB entre le PC et le Kindle
Updater le Kindle (Bouton Menu/paramètre/bouton menu/mettre à jour le Kindle)

3°) SSH
Récupérer votre numéro de série (Bouton Menu/paramétre/page2)
Branchez le kindle sur votre ordinateur et copiez les fichiers/dossiers suivant à la racine du Kindle:
-fichier "ENABLE_DIAGS" (voir étape 1 JailBreak)

Dans Windows, déconnecter le Kindle, Retirez le câble USB entre le PC et le Kindle
Redémarrer le Kindle (Bouton Menu, Paramètres, Bouton Menu, Redémarrer)

 Connecter le câble USB
allez dans : Misc individual diagnostics -> Utilities -> Enable USBnet -> Exit
Sur Windows, dans le gestionnaire de périphérique un périphérique devrait apparaitre sans les drivers
Recherchez Network Adapter ou Carte Réseau / Microsoft Corporation /Remote NDIS based Internet Sharing Device

Si ce n'est pas déjà fait configurer la nouvelle carte réseau ainsi:
IP 192.168.15.201 & subnet 255.255.255.0


Vous aurez besoin du mot de passe de la Kindle :
Allez sur le site :https://www.sven.de/kindle/
Pour récupérer le mot de passe en fonction du numéro de série (disponible dans le menu paramètre).

Télécharger et installer PUTTY
et connectez vous sur 192.168.15.201 avec le login root et le mot de passe trouvé plus haut.
testez les tous si besoin.


4°) Fond d'écran
Une fois connecté, tapez ceci:
mntroot rw
mkdir /mnt/us/screensaver
mount /dev/mmcblk0p1 /mnt/base-mmc
mv /mnt/base-mmc/opt/amazon/screen_saver/600x800 /mnt/base-mmc/opt/amazon/screen_saver/600x800.old
ln -sfn /mnt/us/screensaver /mnt/base-mmc/opt/amazon/screen_saver/600x800
Un nouveau répertoire sera alors visible, où vous pourrez glisser vos images 800x600 en niveau de gris.

Certains existent déjà, voici quelques exemples :
http://kindlewallpapers.tumblr.com/
http://kindlesavers.tumblr.com
www.reddit.com/r/kindlescreensavers/
http://smile-back.blogspot.fr/ 


Source: http://www.shatteredhaven.com/2012/11/1337365-ssh-on-kindle-4-usbnetwork-hack.html

5°) DuoKan
DuoKan est un système alternatif au Système implémenté dans la Kindle.
Il ne la remplace pas, mais se juxtapose et démarre par défaut. On peut rebasculer vers la version d'origine du Kindle.
Le principale problème est qu'il est en Chinois, mais on peut très facilement corriger cela.

Télécharger et dézipper le fichier :
http://www.mediafire.com/file/u7rzxbwaq0zzwzz/%2528k4+None+Touch+and+k4+black%2529xKindle_2012-09-28.16201.rtm+%281%29.zip

Télécharger aussi la version Francaise de DUOKAN : ICI
Branchez le kindle sur votre ordinateur et copiez les fichiers/dossiers suivant à la racine du Kindle:
-fichier (k4)xKindle_2014-06-12.36013.rtm\K4_4.0.0_to_4.0.1_░µ▒¥\data.tar.gz
-dossier (k4)xKindle_2014-06-12.36013.rtm\DK_System

-fichier duokanFR.txt  dans "DK_System\xKindle\res\language"

Dans Windows, déconnecter le Kindle, Retirez le câble USB entre le PC et le Kindle
Redémarrer le Kindle (Bouton Menu, Paramètres, Bouton Menu, Redémarrer)

Sélectionnez:  "D) Exit, Reboot or Disable Diags"
puis "D) Disable Diagnostics"
puis "Q) To continue

Le système redémarre et s'installe.
(en Chinois....)


Pour le passer en Francais:

Cliquez sur le bouton Menu, puis dernière option, puis seconde page, changer le premier paramètre à Duokanfr (attention sur la 2nd page des langues)
Redémarrer, et votre DUOKAN sera en Français !



Si vous souhaitez revenir sur l'interface Kindle d'origine  :
Bouton Menu / dernière option / page 1 / 2ème option / Valeur de droite / bouton centrale de la croix multidirectionnelle

(MAJ 08/09/2017)
CHANGER LE SCREENSAVER :
J'en peux plus du zebre, je veux changer, j'ai tenté quelques conseils, qui m'ont failli faire planter ma Kindle (Mot de passe mal géré) alors voici la solution:
Copiez vos images 600x800 en niveau de gris à l'emplacement suivant :
 \DK_System\xKindle\res\ScreenSaver
N'oubliez pas de supprimer le fichier :banlv@k3.jpg

Source:
https://www.dealabs.com/forums/le-bar/le-laboratoire-high-tech--informatique/tuto-duokan-kindle-4-nt-no-touch/6449
https://technologically365.wordpress.com/2012/09/30/how-to-install-english-duokan-29-9-12-on-your-kindle-4-nt/



6°)MKK
MKK est un système pour permettre à KUAL de fonctionner.

Télécharger et dézipper le fichier :
https://www.mobileread.com/forums/attachment.php?attachmentid=141189&d=1439936584


Copiez "Update_mkk-20141129-k4-ALL_install.bin" à la racine du Kindle

Bouton Menu / Paramètre / Bouton Menu / Mettre à jour votre Kindle


7°)KUAL
KUAL est un menu facilitant l'execution d'addon pour Kindle

https://www.mobileread.com/forums/attachment.php?attachmentid=150365&d=1469125576

Télécharger et dézipper le fichier :
https://www.mobileread.com/forums/attachment.php?attachmentid=150366&d=1469125585



Copie le fichier
KUAL-KDK-1.0.azw2
Dans le répertoire Documents du Kindle

Lancez le livre KUAL pour avoir le menu

8°)Ajout d'extension pour KUAL 
KUAL à l'immense avantage de proposer des Applet facile d'installation, nous allons voir comment faire pour l'option Helper de KUAL puis USBNET puis VNC.


Télécharger et dézipper le fichier :Kual-helper-0.5.N.zip
Branchez le kindle sur votre ordinateur et copiez les fichiers/dossiers suivant à le repertoire "extensions" du Kindle:afin d'obtenir une arborescence de ce type:
F:\extensions\helper\menu.json

Dans Windows, déconnecter le Kindle, Retirez le câble USB entre le PC et le Kindle
Sur la Kindle, Lancez Kual une nouvelle option apparaitra.

Télécharger et dézipper le fichier : kindle-usbnet-0.21.N.zip
 Branchez le kindle sur votre ordinateur et copiez les fichiers/dossiers suivant à le repertoire "extensions" du Kindle:afin d'obtenir une arborescence de ce type:
F:\extensions\usbnet\menu.json
 Dans Windows, déconnecter le Kindle, Retirez le câble USB entre le PC et le Kindle
Sur la Kindle, Lancez Kual une nouvelle option apparaitra.
Puis USBNetwork, Enable SSH at Boot, Enable SSH over Wifi


Pour VNC, faites de même qu'avec Helper et USBNET
https://www.mobileread.com/forums/attachment.php?attachmentid=100522&d=1359776584
Il faudra néanmoins paramétrer le serveur VNC dans le fichier adéquate:
Editez le fichier
F:\extensions\vncviewer\menu.json
et modifiez la valeur :
/mnt/us/kindlevncviewer/kvncviewer.sh hostname:port"
par
/mnt/us/kindlevncviewer/kvncviewer.sh 192.168.43.184:5901"
où 5901 sera le port utilisé, et 192.168.43.184 l'ip à du périphérique à contacter.

Sur le PC à affiché:
télécharger le serveur VNC
ex: tightvnc-2.8.8-gpl-setup-64bit.msi

Configurez-le ainsi:

-"Accept incoming connections" sur le port 5901 (défini auparavent dans le fichier)
-Add, port 5901, geometry 800x600+1680+0
ok

Puis déconnecter le Kindle si ce n'est déjà fait
Lancez KUAL, puis VNC Connection
Votre écran devrait s'afficher sur la Kindle :)


Source:
https://www.mobileread.com/forums/showthread.php?t=203326
https://www.mobileread.com/forums/showpost.php?p=2407690&postcount=318
https://www.mobileread.com/forums/showthread.php?t=186645
https://wiki.mobileread.com/wiki/HowTo:_Use_Kindle_as_secondary_monitor