Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hak5
GitHub Repository: hak5/usbrubberducky-payloads
Path: blob/master/payloads/examples/Tests/test-suite.txt
2968 views
1
VAR $PASS = 0
2
VAR $FAILED = 0
3
4
VAR $TOGGLE = 0
5
VAR $CD = 3
6
7
FUNCTION PASSED()
8
STRINGLN P
9
$PASS = ($PASS + 1)
10
END_FUNCTION
11
12
FUNCTION FAIL()
13
STRINGLN F
14
LED_R
15
$FAILED = ($FAILED + 1)
16
END_FUNCTION
17
18
EXTENSION TRANSLATE()
19
REM DEFINE STRICT_TRUTH FALSE
20
DEFINE PRINT_INT 0
21
DEFINE PRINT_HEX 1
22
VAR $DIGIT_PRINT_MODE = PRINT_INT
23
VAR $D = 0
24
VAR $IN = 0
25
VAR $INPUT = 0
26
VAR $MOD = 0
27
VAR $P = FALSE
28
VAR $NL = TRUE
29
FUNCTION PRINTDIGIT()
30
IF ($D == 0) THEN
31
STRING 0
32
ELSE IF ($D == 1) THEN
33
STRING 1
34
ELSE IF ($D == 2) THEN
35
STRING 2
36
ELSE IF ($D == 3) THEN
37
STRING 3
38
ELSE IF ($D == 4) THEN
39
STRING 4
40
ELSE IF ($D == 5) THEN
41
STRING 5
42
ELSE IF ($D == 6) THEN
43
STRING 6
44
ELSE IF ($D == 7) THEN
45
STRING 7
46
ELSE IF ($D == 8) THEN
47
STRING 8
48
ELSE IF ($D == 9) THEN
49
STRING 9
50
ELSE IF ($DIGIT_PRINT_MODE == PRINT_HEX) THEN
51
IF ($D == 10) THEN
52
STRING A
53
ELSE IF ($D == 11) THEN
54
STRING B
55
ELSE IF ($D == 12) THEN
56
STRING C
57
ELSE IF ($D == 13) THEN
58
STRING D
59
ELSE IF ($D == 14) THEN
60
STRING E
61
ELSE IF ($D == 15) THEN
62
STRING F
63
END_IF
64
ELSE
65
STRING ?
66
END_IF
67
END_FUNCTION
68
FUNCTION CONSUME()
69
$D = 0
70
WHILE ($INPUT >= $MOD)
71
$D = ($D + 1)
72
$INPUT = ($INPUT - $MOD)
73
END_WHILE
74
IF (($D > 0) || ($P == TRUE)) THEN
75
$P = TRUE
76
PRINTDIGIT()
77
END_IF
78
END_FUNCTION
79
FUNCTION SWAP_ENDIAN()
80
$INPUT = ((($INPUT >> 8) & 0x00FF) | (($INPUT << 8) & 0xFF00))
81
END_FUNCTION
82
FUNCTION TRANSLATE_INT()
83
$DIGIT_PRINT_MODE = PRINT_INT
84
$P = FALSE
85
IF ( $INPUT >= 10000) THEN
86
$MOD = 10000
87
CONSUME()
88
END_IF
89
IF (($INPUT >= 1000) || ($P == TRUE)) THEN
90
$MOD = 1000
91
CONSUME()
92
END_IF
93
IF (($INPUT >= 100) || ($P == TRUE)) THEN
94
$MOD = 100
95
CONSUME()
96
END_IF
97
IF (($INPUT >= 10) || ($P == TRUE)) THEN
98
$MOD = 10
99
CONSUME()
100
END_IF()
101
$D = $INPUT
102
PRINTDIGIT()
103
IF $NL THEN
104
ENTER
105
END_IF
106
END_FUNCTION
107
FUNCTION TRANSLATE_BOOL()
108
REM IF STRICT_TRUTH THEN
109
REM IF ($INPUT == TRUE) THEN
110
REM STRING TRUE
111
REM ELSE IF ($INPUT == FALSE) THEN
112
REM STRING FALSE
113
REM ELSE
114
REM STRING ?
115
REM END_IF
116
REM ELSE
117
IF $INPUT THEN
118
STRING TRUE
119
ELSE
120
STRING FALSE
121
END_IF
122
REM END_IF
123
IF $NL THEN
124
ENTER
125
END_IF
126
END_FUNCTION
127
FUNCTION TRANSLATE_HEX()
128
$DIGIT_PRINT_MODE = PRINT_HEX
129
VAR $chars = 0
130
VAR $d1 = 0
131
VAR $d2 = 0
132
VAR $d3 = 0
133
VAR $d4 = 0
134
WHILE ($INPUT > 0)
135
IF ($chars == 0) THEN
136
$d1 = ($INPUT % 16)
137
ELSE IF ($chars == 1) THEN
138
$d2 = ($INPUT % 16)
139
ELSE IF ($chars == 2) THEN
140
$d3 = ($INPUT % 16)
141
ELSE IF ($chars == 3) THEN
142
$d4 = ($INPUT % 16)
143
END_IF
144
$chars = ($chars + 1)
145
$INPUT = ($INPUT / 16)
146
END_WHILE
147
VAR $i = 0
148
STRING 0x
149
IF ($chars == 0) THEN
150
STRING 0x0000
151
ELSE IF ($chars == 1) THEN
152
STRING 000
153
$D = $d1
154
PRINTDIGIT()
155
ELSE IF ($chars == 2) THEN
156
STRING 00
157
$D = $d2
158
PRINTDIGIT()
159
$D = $d1
160
PRINTDIGIT()
161
ELSE IF ($chars == 3) THEN
162
STRING 0
163
$D = $d3
164
PRINTDIGIT()
165
$D = $d2
166
PRINTDIGIT()
167
$D = $d1
168
PRINTDIGIT()
169
ELSE IF ($chars == 4) THEN
170
STRING 0
171
$D = $d4
172
PRINTDIGIT()
173
$D = $d3
174
PRINTDIGIT()
175
$D = $d2
176
PRINTDIGIT()
177
$D = $d1
178
PRINTDIGIT()
179
END_IF
180
IF $NL THEN
181
ENTER
182
END_IF
183
END_FUNCTION
184
END_EXTENSION
185
186
FUNCTION countdown()
187
WHILE ( $CD > 0 )
188
STRING .
189
$CD = ($CD - 1)
190
DELAY 1000
191
END_WHILE
192
END_FUNCTION
193
194
DELAY 1000
195
ENTER
196
STRINGLN ~TEST SUITE~
197
STRINGLN press button NOW to stop & enter storage
198
DELAY 1000
199
200
ENTER
201
STRINGLN _LED_
202
203
STRING OFF :
204
LED_OFF
205
DELAY 500
206
PASSED()
207
208
STRING R :
209
LED_R
210
DELAY 500
211
PASSED()
212
213
STRING G :
214
LED_G
215
DELAY 500
216
PASSED()
217
218
219
FUNCTION injection_test()
220
ENTER
221
STRINGLN abcdefghijklmnopqrstuvxyz0123456789
222
STRINGLN ABCDEFGHIJKLMNOPQRSTUVXYZ0123456789
223
STRINGLN aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVxXyYzZ0123456789
224
STRINGLN _________
225
STRINGLN /__TEST__/\
226
STRINGLN \__.::.__\/
227
STRINGLN \::\ \
228
STRINGLN \::\ \
229
STRINGLN \::\ \
230
STRINGLN \__\/
231
END_FUNCTION
232
233
234
ENTER
235
STRINGLN _Injection_
236
injection_test()
237
STRING Basic injection :
238
PASSED()
239
240
STRING (DEFAULT)HID->OFF->HID STORAGE :
241
DELAY 500
242
ATTACKMODE OFF
243
LED_OFF
244
DELAY 500
245
LED_R
246
DELAY 500
247
LED_OFF
248
ATTACKMODE HID STORAGE VID_05AC PID_021E MAN_TEST PROD_TEST SERIAL_133713371337
249
DELAY 500
250
PASSED()
251
252
ENTER
253
STRINGLN _UNIT TESTS_
254
REM ------------------------------------------------------------------------------------------------------------------------------
255
256
STRING TRUE :
257
IF TRUE THEN
258
PASSED()
259
ELSE
260
FAIL()
261
END_IF
262
263
STRING FALSE :
264
IF FALSE THEN
265
FAIL()
266
ELSE
267
PASSED()
268
END_IF
269
STRING (TRUE) :
270
IF ( TRUE ) THEN
271
PASSED()
272
ELSE
273
FAIL()
274
END_IF
275
276
STRING (FALSE) :
277
IF ( FALSE ) THEN
278
FAIL()
279
ELSE
280
PASSED()
281
END_IF
282
283
STRING TRUE==TRUE :
284
IF ( TRUE == TRUE ) THEN
285
PASSED()
286
ELSE
287
FAIL()
288
END_IF
289
290
STRING FALSE==FALSE :
291
IF ( FALSE == FALSE ) THEN
292
PASSED()
293
ELSE
294
FAIL()
295
END_IF
296
297
STRING TRUE==FALSE :
298
IF ( TRUE == FALSE ) THEN
299
FAIL()
300
ELSE
301
PASSED()
302
END_IF
303
304
STRING TRUE!=FALSE :
305
IF ( TRUE != FALSE ) THEN
306
PASSED()
307
ELSE
308
FAIL()
309
END_IF
310
311
STRING 1==1 :
312
IF ( 1 == 1 ) THEN
313
PASSED()
314
ELSE
315
FAIL()
316
END_IF
317
318
STRING 0==0 :
319
IF ( 0 == 0 ) THEN
320
PASSED()
321
ELSE
322
FAIL()
323
END_IF
324
325
STRING ((1+1)==2) :
326
IF ((1+1) == 2) THEN
327
PASSED()
328
ELSE
329
FAIL()
330
END_IF
331
332
STRING ((2-1)==(0+1)) :
333
IF ((2-1) == (0+1)) THEN
334
PASSED()
335
ELSE
336
FAIL()
337
END_IF
338
339
STRING ((2*2)==4) :
340
IF ((2*2) == 4) THEN
341
PASSED()
342
ELSE
343
FAIL()
344
END_IF
345
346
STRING ((4/2)==2) :
347
IF ((4/2) == 2) THEN
348
PASSED()
349
ELSE
350
FAIL()
351
END_IF
352
353
STRING ((4/2)==2) :
354
IF ((4/2) == 2) THEN
355
PASSED()
356
ELSE
357
FAIL()
358
END_IF
359
360
STRING (10>0) :
361
IF (10 > 0) THEN
362
PASSED()
363
ELSE
364
FAIL()
365
END_IF
366
367
STRING (10<100) :
368
IF (10 < 100) THEN
369
PASSED()
370
ELSE
371
FAIL()
372
END_IF
373
374
STRING (10<=11) :
375
IF (10 <= 11) THEN
376
PASSED()
377
ELSE
378
FAIL()
379
END_IF
380
381
STRING (10<=10) :
382
IF (10 <= 10) THEN
383
PASSED()
384
ELSE
385
FAIL()
386
END_IF
387
388
STRING (11>=10) :
389
IF (11 >= 10) THEN
390
PASSED()
391
ELSE
392
FAIL()
393
END_IF
394
395
STRING (10>=10) :
396
IF (10 >= 10) THEN
397
PASSED()
398
ELSE
399
FAIL()
400
END_IF
401
402
STRING (TRUE&&TRUE) :
403
IF (TRUE && TRUE) THEN
404
PASSED()
405
ELSE
406
FAIL()
407
END_IF
408
409
STRING (FALSE&&TRUE) :
410
IF (FALSE && TRUE) THEN
411
FAIL()
412
ELSE
413
PASSED()
414
END_IF
415
416
STRING (TRUE||TRUE) :
417
IF (TRUE || TRUE) THEN
418
PASSED()
419
ELSE
420
FAIL()
421
END_IF
422
423
STRING (FALSE||TRUE) :
424
IF (FALSE || TRUE) THEN
425
PASSED()
426
ELSE
427
FAIL()
428
END_IF
429
430
STRING ((10%2)==0) :
431
IF ((10 % 2) == 0) THEN
432
PASSED()
433
ELSE
434
FAIL()
435
END_IF
436
437
STRING ((11%2)==1) :
438
IF ((11 % 2) == 1) THEN
439
PASSED()
440
ELSE
441
FAIL()
442
END_IF
443
444
STRING $zero=0;($zero ==0) :
445
VAR $zero = 0
446
IF ( $zero == 0 ) THEN
447
PASSED()
448
ELSE
449
FAIL()
450
END_IF
451
452
STRING ($zero==1) :
453
IF ( $zero == 1 ) THEN
454
FAIL()
455
ELSE
456
PASSED()
457
END_IF
458
459
STRING $one=1;($one==1) :
460
VAR $one = 1
461
IF ( $one == 1 ) THEN
462
PASSED()
463
ELSE
464
FAIL()
465
END_IF
466
467
STRING ($one!=1) :
468
IF ( $one != 1 ) THEN
469
FAIL()
470
ELSE
471
PASSED()
472
END_IF
473
474
STRING ($one+1);($two==2) :
475
VAR $two = ( $one + 1 )
476
IF ( $two == 2 ) THEN
477
PASSED()
478
ELSE
479
FAIL()
480
END_IF
481
482
STRING ($two!=2) :
483
IF ( $two != 2 ) THEN
484
FAIL()
485
ELSE
486
PASSED()
487
END_IF
488
489
STRING ($two==$two) :
490
IF ( $two == $two ) THEN
491
PASSED()
492
ELSE
493
FAIL()
494
END_IF
495
496
STRING ($two!=$two) :
497
IF ( $two != $two ) THEN
498
FAIL()
499
ELSE
500
PASSED()
501
END_IF
502
503
STRING (($two==$one)||($two==$zero)) :
504
IF ( ($two == $one) || ($two == $zero) ) THEN
505
FAIL()
506
ELSE
507
PASSED()
508
END_IF
509
510
STRING ((($one+1)==$two)&&((($zero+$two)+1)==3)) :
511
IF ( (($one + 1) == $two) && ((($zero + $two) + 1) == 3) ) THEN
512
PASSED()
513
ELSE
514
FAIL()
515
END_IF
516
517
ENTER
518
STRINGLN _FUNCTIONS_
519
REM ------------------------------------------------------------------------------------------------------------------------------
520
521
FUNCTION f_one()
522
RETURN 1
523
END_FUNCTION
524
525
FUNCTION f_v_one()
526
RETURN $one
527
END_FUNCTION
528
529
FUNCTION f_zero()
530
RETURN 0
531
END_FUNCTION
532
533
FUNCTION early_ret()
534
IF ( 0 == 0 ) THEN
535
RETURN TRUE
536
ELSE
537
RETURN FALSE
538
END_IF
539
END_FUNCTION
540
541
STRING (early_ret()==TRUE) :
542
IF (early_ret() == TRUE) THEN
543
PASSED()
544
ELSE
545
FAIL()
546
END_IF
547
548
STRING (f_one()==1) :
549
IF (f_one() == 1) THEN
550
PASSED()
551
ELSE
552
FAIL()
553
END_IF
554
555
STRING (f_zero()==0) :
556
IF (f_zero() == 0) THEN
557
PASSED()
558
ELSE
559
FAIL()
560
END_IF
561
562
STRING $retVal=f_one();($retVal==1) :
563
VAR $retVal = f_one()
564
IF ($retVal == 1) THEN
565
PASSED()
566
ELSE
567
FAIL()
568
END_IF
569
570
STRING $retVal=f_v_one();($retVal==1) :
571
$retVal = f_v_one()
572
IF ($retVal == 1) THEN
573
PASSED()
574
ELSE
575
FAIL()
576
END_IF
577
578
ENTER
579
STRING _BUTTON_
580
REM ------------------------------------------------------------------------------------------------------------------------------
581
582
FUNCTION print_button_states()
583
ENTER
584
STRING Button push received :
585
$INPUT = $_BUTTON_PUSH_RECEIVED
586
TRANSLATE_BOOL()
587
STRING Button Enabled :
588
$INPUT = $_BUTTON_ENABLED
589
TRANSLATE_BOOL()
590
STRING Button user defined :
591
$INPUT = $_BUTTON_USER_DEFINED
592
TRANSLATE_BOOL()
593
STRING Button timeout :
594
$INPUT = $_BUTTON_TIMEOUT
595
TRANSLATE_INT()
596
END_FUNCTION
597
598
FUNCTION request_button_press()
599
STRING PRESS DUCK BUTTON :
600
WAIT_FOR_BUTTON_PRESS
601
PASSED()
602
END_FUNCTION
603
604
print_button_states()
605
606
request_button_press()
607
request_button_press()
608
609
REM print_button_states()
610
STRINGLN $_BUTTON_ENABLED = FALSE;
611
$_BUTTON_ENABLED = FALSE
612
REM print_button_states()
613
STRING ($_BUTTON_ENABLED==TRUE) :
614
IF ($_BUTTON_ENABLED == TRUE) THEN
615
FAIL()
616
ELSE
617
PASSED()
618
END_IF
619
STRING PRESS DUCK BUTTON (expect no result) within 3s
620
$CD = 3
621
countdown()
622
PASSED()
623
REM print_button_states()
624
STRINGLN $_BUTTON_ENABLED = TRUE;
625
$_BUTTON_ENABLED = TRUE
626
REM print_button_states()
627
STRING ($_BUTTON_ENABLED==FALSE) :
628
IF ($_BUTTON_ENABLED == FALSE) THEN
629
FAIL()
630
ELSE
631
PASSED()
632
END_IF
633
634
request_button_press()
635
636
BUTTON_DEF
637
PASSED()
638
STRINGLN PRESSED ONCE
639
BUTTON_DEF
640
PASSED()
641
STRINGLN PRESSED TWICE
642
END_BUTTON
643
END_BUTTON
644
645
DELAY 1000
646
STRING MASH BUTTON within 5s
647
$CD = 5
648
countdown()
649
ENTER
650
651
STRINGLN Manual button check
652
$_BUTTON_ENABLED = FALSE
653
$_BUTTON_PUSH_RECEIVED = FALSE
654
REM print_button_states()
655
STRING PUSH BUTTON N times within 5s
656
$CD = 15
657
WHILE ($CD > 0)
658
IF ($_BUTTON_PUSH_RECEIVED == TRUE) THEN
659
STRINGLN p
660
$_BUTTON_PUSH_RECEIVED = FALSE
661
END_IF
662
$CD = ($CD - 1)
663
STRING .
664
DELAY 200
665
END_WHILE
666
$_BUTTON_ENABLED = TRUE
667
$_BUTTON_PUSH_RECEIVED = FALSE
668
669
ENTER
670
STRINGLN _LOCKS_
671
REM ------------------------------------------------------------------------------------------------------------------------------
672
673
STRING Saving lock state :
674
SAVE_HOST_KEYBOARD_LOCK_STATE
675
PASSED()
676
677
FUNCTION compare_saved_lock_states()
678
STRING ($_SAVED_CAPSLOCK_ON==$_CAPSLOCK_ON) :
679
IF ($_SAVED_CAPSLOCK_ON == $_CAPSLOCK_ON) THEN
680
PASSED()
681
ELSE
682
FAIL()
683
END_IF
684
685
STRING ($_SAVED_NUMLOCK_ON==$_NUMLOCK_ON) :
686
IF ($_SAVED_NUMLOCK_ON == $_NUMLOCK_ON) THEN
687
PASSED()
688
ELSE
689
FAIL()
690
END_IF
691
692
STRING ($_SAVED_SCROLLLOCK_ON==$_SCROLLLOCK_ON) :
693
IF ($_SAVED_SCROLLLOCK_ON == $_SCROLLLOCK_ON) THEN
694
PASSED()
695
ELSE
696
FAIL()
697
END_IF
698
END_FUNCTION
699
700
compare_saved_lock_states()
701
702
STRING ($_CAPSLOCK_ON==TRUE) THEN; CAPSLOCK;
703
IF ( $_CAPSLOCK_ON == TRUE ) THEN
704
CAPSLOCK
705
DELAY 100
706
END_IF
707
708
STRING ( $_CAPSLOCK_ON == FALSE ) :
709
IF ( $_CAPSLOCK_ON == FALSE ) THEN
710
PASSED()
711
ELSE
712
FAIL()
713
END_IF
714
715
STRING ( $_NUMLOCK_ON == FALSE ) THEN; NUMLOCK;
716
IF ( $_NUMLOCK_ON == FALSE ) THEN
717
NUMLOCK
718
DELAY 100
719
END_IF
720
721
STRING ( $_NUMLOCK_ON == TRUE ) :
722
IF ( $_NUMLOCK_ON == TRUE ) THEN
723
PASSED()
724
ELSE
725
FAIL()
726
END_IF
727
728
FUNCTION wait_for_caps_on()
729
STRING press capslock(wait for caps on):
730
WAIT_FOR_CAPS_ON
731
PASSED()
732
END_FUNCTION
733
FUNCTION wait_for_caps_off()
734
STRING press capslock(wait for caps off):
735
WAIT_FOR_CAPS_OFF
736
PASSED()
737
END_FUNCTION
738
FUNCTION wait_for_caps_change()
739
STRING press capslock(wait for caps change):
740
WAIT_FOR_CAPS_CHANGE
741
PASSED()
742
END_FUNCTION
743
FUNCTION wait_for_num_off()
744
STRING press numlock(wait for num off):
745
WAIT_FOR_NUM_OFF
746
PASSED()
747
END_FUNCTION
748
FUNCTION wait_for_num_on()
749
STRING press numlock(wait for num on):
750
WAIT_FOR_NUM_ON
751
PASSED()
752
END_FUNCTION
753
FUNCTION wait_for_num_change()
754
STRING press numlock(wait for num change):
755
WAIT_FOR_NUM_CHANGE
756
PASSED()
757
END_FUNCTION
758
FUNCTION wait_for_scroll_off()
759
STRING press scroll lock(wait for scroll off):
760
WAIT_FOR_SCROLL_OFF
761
PASSED()
762
END_FUNCTION
763
FUNCTION wait_for_scroll_on()
764
STRING press scroll lock(wait for scroll on):
765
WAIT_FOR_SCROLL_ON
766
PASSED()
767
END_FUNCTION
768
FUNCTION wait_for_scroll_change()
769
STRING press scroll lock(wait for scroll change):
770
WAIT_FOR_SCROLL_CHANGE
771
PASSED()
772
END_FUNCTION
773
774
IF ($_CAPSLOCK_ON == TRUE) THEN
775
wait_for_caps_off()
776
wait_for_caps_on()
777
ELSE
778
wait_for_caps_on()
779
wait_for_caps_off()
780
END_IF
781
782
wait_for_caps_change()
783
wait_for_caps_change()
784
785
IF ($_NUMLOCK_ON == TRUE) THEN
786
wait_for_num_off()
787
wait_for_num_on()
788
ELSE
789
wait_for_num_on()
790
wait_for_num_off()
791
END_IF
792
793
wait_for_num_change()
794
wait_for_num_change()
795
796
IF($_SCROLLLOCK_ON == TRUE) THEN
797
wait_for_scroll_off()
798
wait_for_scroll_on()
799
ELSE
800
wait_for_scroll_on()
801
wait_for_scroll_off()
802
END_IF
803
804
wait_for_scroll_change()
805
wait_for_scroll_change()
806
807
STRING Restoring lock state :
808
RESTORE_HOST_KEYBOARD_LOCK_STATE
809
PASSED()
810
811
compare_saved_lock_states()
812
813
814
REM ------------------------------------------------------------------------------------------------------------------------------
815
816
STRING Storage activity timeout :
817
$INPUT = $_STORAGE_ACTIVITY_TIMEOUT
818
TRANSLATE_INT()
819
820
REM this is 0 because its already timed out
821
STRING ($_STORAGE_ACTIVITY_TIMEOUT==0) :
822
IF ( $_STORAGE_ACTIVITY_TIMEOUT == 0 ) THEN
823
PASSED()
824
ELSE
825
FAIL()
826
END_IF
827
828
STRING Payload Parse Speed :
829
$INPUT = $_PAYLOAD_PARSE_SPEED
830
TRANSLATE_INT()
831
832
STRING ($_PAYLOAD_PARSE_SPEED==2) :
833
IF ($_PAYLOAD_PARSE_SPEED == 2) THEN
834
PASSED()
835
ELSE
836
FAIL()
837
END_IF
838
839
STRING System LEDs enabled :
840
$INPUT = $_SYSTEM_LEDS_ENABLED
841
TRANSLATE_BOOL()
842
843
STRING Storage LEDs enabled :
844
$INPUT = $_STORAGE_LEDS_ENABLED
845
TRANSLATE_BOOL()
846
847
STRING Injecting LEDs enabled :
848
$INPUT = $_INJECTING_LEDS_ENABLED
849
TRANSLATE_BOOL()
850
851
STRING Exfil LEDs enabled :
852
$INPUT = $_EXFIL_LEDS_ENABLED
853
TRANSLATE_BOOL()
854
855
STRING Received host lock LED reply :
856
$INPUT = $_RECEIVED_HOST_LOCK_LED_REPLY
857
TRANSLATE_BOOL()
858
859
STRING EXFIL mode enabled :
860
$INPUT = $_EXFIL_MODE_ENABLED
861
TRANSLATE_BOOL()
862
863
STRING ($_EXFIL_MODE_ENABLED==FALSE) :
864
IF ( $_EXFIL_MODE_ENABLED == FALSE) THEN
865
PASSED()
866
ELSE
867
FAIL()
868
END_IF
869
870
STRING OS(default):
871
$INPUT = $_OS
872
TRANSLATE_INT()
873
874
STRING Driver counter :
875
$INPUT = $_HOST_CONFIGURATION_REQUEST_COUNT
876
TRANSLATE_INT()
877
878
STRING Storage active :
879
$INPUT = $_STORAGE_ACTIVE
880
TRANSLATE_BOOL()
881
882
ENTER
883
STRINGLN _JITTER_
884
REM ------------------------------------------------------------------------------------------------------------------------------
885
886
STRING Jitter enabled :
887
$INPUT = $_JITTER_ENABLED
888
TRANSLATE_BOOL()
889
890
STRING ($_JITTER_ENABLED==FALSE) :
891
IF ($_JITTER_ENABLED == FALSE) THEN
892
PASSED()
893
ELSE
894
FAIL()
895
END_IF
896
897
STRING Jitter max :
898
$INPUT = $_JITTER_MAX
899
TRANSLATE_INT()
900
901
STRINGLN $_JITTER_ENABLED=TRUE;
902
$_JITTER_ENABLED = TRUE
903
STRING ($_JITTER_ENABLED == TRUE) :
904
IF ($_JITTER_ENABLED == TRUE) THEN
905
PASSED()
906
ELSE
907
FAIL()
908
END_IF
909
injection_test()
910
$_JITTER_ENABLED = FALSE
911
STRING TEST W/FW JITTER ON :
912
PASSED()
913
914
ENTER
915
STRINGLN _HOLD_
916
REM ------------------------------------------------------------------------------------------------------------------------------
917
918
STRINGLN HOLD a;DELAY 1500;RELEASE a :
919
HOLD a
920
DELAY 1000
921
RELEASE a
922
ENTER
923
PASSED()
924
925
STRINGLN HOLD A;DELAY 1500;RELEASE A :
926
HOLD A
927
DELAY 1000
928
RELEASE A
929
PASSED()
930
931
STRINGLN MANUAL INJECTMOD, HOLD MOD, KEY_DOWN, RELEASE a, RESET test :
932
INJECT_MOD
933
HOLD SHIFT
934
KEY_DOWN 0400
935
DELAY 1000
936
RELEASE a
937
RESET
938
939
STRING MANUAL inject A :
940
INJECT 0402
941
STRING :
942
PASSED()
943
944
STRING MANUAL state type A :
945
MOD_DOWN 0402
946
MOD_KEY_DOWN 0402
947
MOD_KEY_UP 0402
948
MOD_UP 0402
949
STRING :
950
PASSED()
951
952
STRING MANUAL type a :
953
KEY_DOWN 0402
954
KEY_UP 0402
955
STRING :
956
PASSED()
957
958
STRING DELAY $ :
959
VAR $T = 1000
960
STRING $T(1000) :
961
DELAY $T
962
PASSED()
963
STRINGLN $T = ($T * 2);
964
$T = ($T * 2)
965
STRING DELAY $T :
966
DELAY $T
967
PASSED()
968
969
REM EXTENDED DELAY
970
REM DELAY 65536
971
972
973
STRINGLN _EXFIL VAR_
974
REM ------------------------------------------------------------------------------------------------------------------------------
975
STRING EXFIL $T :
976
$T = 1000
977
EXFIL $T
978
PASSED()
979
980
STRING _RAND_
981
REM ------------------------------------------------------------------------------------------------------------------------------
982
ENTER
983
984
STRING Rand min :
985
$INPUT = $_RANDOM_MIN
986
TRANSLATE_INT()
987
988
STRING ($_RANDOM_MIN==0) :
989
IF ($_RANDOM_MIN == 0) THEN
990
PASSED()
991
ELSE
992
FAIL()
993
END_IF
994
995
STRING Rand max :
996
$INPUT = $_RANDOM_MAX
997
TRANSLATE_INT()
998
999
STRING ($_RANDOM_MAX==9) :
1000
IF ($_RANDOM_MAX == 9) THEN
1001
PASSED()
1002
ELSE
1003
FAIL()
1004
END_IF
1005
1006
STRING $_RANDOM_INT :
1007
$INPUT = $_RANDOM_INT
1008
TRANSLATE_INT()
1009
1010
STRING 0<$_RANDOM_INT>9 bounds :
1011
IF (($_RANDOM_INT >= 0) && ($_RANDOM_INT <= 9)) THEN
1012
PASSED()
1013
ELSE
1014
FAIL()
1015
END_IF
1016
1017
STRING min<$_RANDOM_INT>max bounds :
1018
IF (($_RANDOM_INT >= $_RANDOM_MIN) && ($_RANDOM_INT <= $_RANDOM_MAX)) THEN
1019
PASSED()
1020
ELSE
1021
FAIL()
1022
END_IF
1023
1024
STRING Random seed :
1025
$INPUT = $_RANDOM_SEED
1026
TRANSLATE_INT()
1027
1028
VAR $length = 100
1029
FUNCTION generate_random_lower()
1030
$length = 100
1031
WHILE ( $length > 0 )
1032
RANDOM_LOWERCASE_LETTER
1033
$length = ($length - 1)
1034
END_WHILE
1035
ENTER
1036
END_FUNCTION
1037
1038
FUNCTION generate_random_upper()
1039
$length = 100
1040
WHILE ( $length > 0 )
1041
RANDOM_UPPERCASE_LETTER
1042
$length = ($length - 1)
1043
END_WHILE
1044
ENTER
1045
END_FUNCTION
1046
1047
FUNCTION generate_random_letter()
1048
$length = 100
1049
WHILE ( $length > 0 )
1050
RANDOM_LETTER
1051
$length = ($length - 1)
1052
END_WHILE
1053
ENTER
1054
END_FUNCTION
1055
1056
FUNCTION generate_random_number()
1057
$length = 100
1058
WHILE ( $length > 0 )
1059
RANDOM_NUMBER
1060
$length = ($length - 1)
1061
END_WHILE
1062
ENTER
1063
END_FUNCTION
1064
1065
FUNCTION generate_random_special()
1066
$length = 100
1067
WHILE ( $length > 0 )
1068
RANDOM_SPECIAL
1069
$length = ($length - 1)
1070
END_WHILE
1071
ENTER
1072
END_FUNCTION
1073
1074
FUNCTION generate_random_char()
1075
$length = 100
1076
WHILE ( $length > 0 )
1077
RANDOM_CHAR
1078
$length = ($length - 1)
1079
END_WHILE
1080
ENTER
1081
END_FUNCTION
1082
1083
STRINGLN RAND LOWER:
1084
generate_random_lower()
1085
STRINGLN RAND UPPER:
1086
generate_random_upper()
1087
STRINGLN RAND LETTER:
1088
generate_random_letter()
1089
STRINGLN RAND NUMBER:
1090
generate_random_number()
1091
STRINGLN RAND SPECIAL:
1092
generate_random_special()
1093
STRINGLN RAND CHAR:
1094
generate_random_char()
1095
1096
REM ------------------------------------------------------------------------------------------------------------------------------
1097
FUNCTION vid_pid_check()
1098
$INPUT = $_CURRENT_VID
1099
SWAP_ENDIAN()
1100
STRING ($INPUT(vid)==0x05AC) :
1101
IF ($INPUT == 0x05AC) THEN
1102
PASSED()
1103
ELSE
1104
FAIL()
1105
END_IF
1106
STRING $_CURRENT_VID(hex):
1107
TRANSLATE_HEX()
1108
$INPUT = $_CURRENT_PID
1109
SWAP_ENDIAN()
1110
STRING ($INPUT(pid)==0x021E) :
1111
IF ($INPUT == 0x021E) THEN
1112
PASSED()
1113
ELSE
1114
FAIL()
1115
END_IF
1116
STRING $_CURRENT_PID(hex):
1117
TRANSLATE_HEX()
1118
END_FUNCTION
1119
1120
vid_pid_check()
1121
1122
STRINGLN SAVE_ATTACKMODE;ATTACKMODE OFF;RESTORE_ATTACKMODE;
1123
SAVE_ATTACKMODE
1124
DELAY 500
1125
ATTACKMODE OFF
1126
DELAY 500
1127
LED_OFF
1128
DELAY 50
1129
LED_R
1130
DELAY 50
1131
LED_G
1132
DELAY 50
1133
LED_R
1134
DELAY 50
1135
LED_OFF
1136
RESTORE_ATTACKMODE
1137
PASSED()
1138
DELAY 500
1139
1140
vid_pid_check()
1141
1142
STRING ($_CURRENT_ATTACKMODE==3) :
1143
IF ($_CURRENT_ATTACKMODE == 3) THEN
1144
PASSED()
1145
ELSE
1146
FAILED
1147
END_IF
1148
1149
STRING ATTACKMODE HID STORAGE MAN_T PROD_T SERIAL_RANDOM :
1150
ATTACKMODE HID STORAGE MAN_T PROD_T SERIAL_RANDOM
1151
DELAY 500
1152
PASSED()
1153
1154
STRINGLN Setting BUTTON to toggle hide/restore
1155
BUTTON_DEF
1156
IF (($TOGGLE % 2) == 0) THEN
1157
ATTACKMODE OFF
1158
HIDE_PAYLOAD
1159
DELAY 500
1160
ATTACKMODE STORAGE
1161
ELSE
1162
ATTACKMODE OFF
1163
RESTORE_PAYLOAD
1164
DELAY 500
1165
ATTACKMODE STORAGE
1166
END_IF
1167
$TOGGLE = ($TOGGLE + 1)
1168
END_BUTTON
1169
1170
STRING ($_BUTTON_USER_DEFINED==TRUE) :
1171
IF ($_BUTTON_USER_DEFINED == TRUE) THEN
1172
PASSED()
1173
ELSE
1174
FAIL()
1175
END_IF
1176
1177
ENTER
1178
STRINGLN ~DONE~
1179
STRING F:
1180
$INPUT = $FAILED
1181
TRANSLATE_INT()
1182
STRING P:
1183
$INPUT = $PASS
1184
TRANSLATE_INT()
1185
IF ( $FAILED == 0 ) THEN
1186
STRINGLN TESTS PASSED
1187
LED_G
1188
ELSE
1189
STRINGLN TESTS FAILED
1190
LED_R
1191
END_IF
1192
ENTER
1193
STRINGLN DONE
1194
1195