X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2Fgoodfet.glitch;h=1d301a9117c9c2cc72787102085ad83c78947256;hp=7380caa3c7565bcf354c2d7971ae5b8501beae42;hb=dd259c9289deb11e84be93647c144192e5ba10b6;hpb=727368ac736e368cf08aa28310c79a3463583f5a diff --git a/client/goodfet.glitch b/client/goodfet.glitch index 7380caa..1d301a9 100755 --- a/client/goodfet.glitch +++ b/client/goodfet.glitch @@ -16,24 +16,50 @@ glitcher=GoodFETGlitch(); if(len(sys.argv)==1): print "Usage: %s chip verb [objects]\n" % sys.argv[0]; print "%s avr learn" % sys.argv[0]; + print "%s avr explore" % sys.argv[0]; print "%s avr graph" % sys.argv[0]; print "%s avr graphx11" % sys.argv[0]; + print "%s avr points" % sys.argv[0]; + print "%s avr npoints" % sys.argv[0]; print """ This populates a database, glitch.db, with a record of all attempted glitches. Graphs can then be generated from the results, allowing results to be replicated on different hardware and models. The general -sequence for a new chip is to first run 'goodfet $foo learn' for an evening, -then to FINISHME""" - sys.exit(); +sequence for a new chip is as follows. +On a sample chip for the same model as the target, +1) Run 'goodfet $chip learn' in order to learn the glitching voltages. +2) Run 'goodfet $chip crunch' in order to precompute glitching ranges. +3) Run 'goodfet $chip explore' to find a time at which to glitch. -glitcher.setup(sys.argv[1]); +Then on a chip to be extracted, +3) Run 'goodfet $chip exploit' to exploit a chip and recover its firmware.""" + sys.exit(); -if(sys.argv[2]=="learn"): - glitcher.learn(); if(sys.argv[2]=="graphx11"): glitcher.graphx11(); - + exit(); if(sys.argv[2]=="graph"): glitcher.graph(); + exit(); +if(sys.argv[2]=="points"): + glitcher.points(); + exit(); +if(sys.argv[2]=="npoints"): + glitcher.npoints(); + exit(); + +if(sys.argv[2]=="crunch"): + glitcher.crunch(); + exit(); + +glitcher.setup(sys.argv[1]); + +if(sys.argv[2]=="learn"): + glitcher.learn(); +if(sys.argv[2]=="explore"): + glitcher.explore(); +if(sys.argv[2]=="exploit"): + print "Coming soon."; +