chg: 'hf iclass sim' - turning of antenna after simulation is done.

chg: 'hf iclass sim' - use @holiman 's 8 csn instead of the original @carl55 (15),   and a new first entry csn, to see if the old one got blacklisted.
This commit is contained in:
iceman1001
2017-08-18 10:23:46 +02:00
parent 1d6b0c0c6a
commit db515ba6c4
4 changed files with 91 additions and 78 deletions

View File

@@ -7,8 +7,7 @@
#include <ctype.h>
#include "elite_crack.h"
void calc_score(uint8_t* csn, uint8_t* k)
{
void calc_score(uint8_t* csn, uint8_t* k) {
uint8_t score =0 ;
uint8_t i;
uint8_t goodvals[16] = {0};
@@ -17,64 +16,58 @@ void calc_score(uint8_t* csn, uint8_t* k)
memset(uniq_vals, 0x00, 8);
uint8_t badval = 0;
int badscore =0;
for(i=0; i < 8 ; i++)
{
if(k[i] == 0x01) continue;
if(k[i] == 0x00) continue;
if(k[i] == 0x45) continue;
if(k[i] < 16){
for ( i=0; i < 8 ; i++) {
if (k[i] == 0x01) continue;
if (k[i] == 0x00) continue;
if (k[i] == 0x45) continue;
if (k[i] < 16){
goodvals[k[i]] = 1;
}
// if(k[i] ==9 || k[i]==2){
// goodvals[k[i]] = 1;
// }
else if(k[i]>=16){
else if (k[i]>=16){
badscore++;
badval = k[i];
}
}
for(i =0; i < 16; i++)
{
if(goodvals[i])
{
for (i =0; i < 16; i++) {
if (goodvals[i]) {
uniq_vals[score] = i;
score +=1;
}
}
if(score >=2 && badscore < 2)
{
if (score >=2 && badscore < 2) {
printf("CSN\t%02x%02x%02x%02x%02x%02x%02x%02x\t%02x %02x %02x %02x %02x %02x %02x %02x\t"
,csn[0],csn[1],csn[2],csn[3],csn[4],csn[5],csn[6],csn[7]
,k[0],k[1],k[2],k[3],k[4],k[5],k[6],k[7]
);
for(i =0 ; i < score; i++)
{
for (i=0 ; i < score; i++) {
printf("%d,", uniq_vals[i]);
}
printf("\tbadscore: %d (%02x)", badscore, badval);
printf("\r\n");
}
}
void brute_hash1(){
void brute_hash1(void){
uint16_t a,b,c,d;
uint8_t csn[8] = {0,0,0,0,0xf7,0xff,0x12,0xe0};
uint8_t k[8]= {0,0,0,0,0,0,0,0};
uint16_t a,b,c,d;
uint8_t testcsn[8] ={0x00,0x0d,0x0f,0xfd,0xf7,0xff,0x12,0xe0} ;
uint8_t testkey[8] ={0x05 ,0x01 ,0x00 ,0x10 ,0x45 ,0x08 ,0x45,0x56} ;
uint8_t testcsn[8] = {0x00,0x0d,0x0f,0xfd,0xf7,0xff,0x12,0xe0} ;
uint8_t testkey[8] = {0x05 ,0x01 ,0x00 ,0x10 ,0x45 ,0x08 ,0x45,0x56} ;
calc_score(testcsn,testkey);
printf("Brute forcing hashones\n");
//exit(1);
for(a=0;a < 256;a++)
{
for (a=0; a < 256; a++) {
//if(a > 0)printf("%d/256 done...\n", a);
for(b=0;b < 256 ; b++)
for(c=0;c < 256;c++)
for(d=0;d < 256;d++)
{
for (b=0; b < 256; b++)
for (c=0; c < 256; c++)
for (d=0; d < 256; d++) {
csn[0] = a;
csn[1] = b;
csn[2] = c;
@@ -87,6 +80,5 @@ void brute_hash1(){
calc_score(csn,k);
}
}
}

View File

@@ -1,5 +1,5 @@
#ifndef HASH1_BRUTE_H
#define HASH1_BRUTE_H
void brute_hash1();
extern void brute_hash1();
#endif // HASH1_BRUTE_H