mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 13:53:55 -07:00
cppcheck reduce variable scopes
This commit is contained in:
parent
d37547917e
commit
9f36ce1b9d
15 changed files with 102 additions and 140 deletions
|
@ -100,16 +100,13 @@ static void create_tables(struct table *tt) {
|
|||
|
||||
// free the table memory
|
||||
static void free_tables(struct table *tt) {
|
||||
int i;
|
||||
struct table *ttmp;
|
||||
|
||||
if (!tt) {
|
||||
printf("free_tables: t is NULL\n");
|
||||
printf("free_tables: tt is NULL\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
for (i = 0; i < 0x10000; i++) {
|
||||
ttmp = tt + i;
|
||||
for (int i = 0; i < 0x10000; i++) {
|
||||
struct table *ttmp = tt + i;
|
||||
free(ttmp->data);
|
||||
}
|
||||
}
|
||||
|
@ -279,10 +276,7 @@ static void jumpnsteps(Hitag_State *hstate, int table) {
|
|||
static void *buildtable(void *dd) {
|
||||
Hitag_State hstate;
|
||||
Hitag_State hstate2;
|
||||
unsigned long i;
|
||||
unsigned long maxentries = 1;
|
||||
uint32_t ks1;
|
||||
uint32_t ks2;
|
||||
int index = (int)(long)dd;
|
||||
int tnum = NUM_BUILD_THREADS;
|
||||
|
||||
|
@ -291,7 +285,7 @@ static void *buildtable(void *dd) {
|
|||
buildlfsr(&hstate);
|
||||
|
||||
/* jump to offset using jump table 2 (2048) */
|
||||
for (i = 0; i < index; i++) {
|
||||
for (unsigned long i = 0; i < index; i++) {
|
||||
jumpnsteps(&hstate, 2);
|
||||
}
|
||||
|
||||
|
@ -309,7 +303,7 @@ static void *buildtable(void *dd) {
|
|||
}
|
||||
|
||||
/* make the entries */
|
||||
for (i = 0; i < maxentries; i++) {
|
||||
for (unsigned long i = 0; i < maxentries; i++) {
|
||||
|
||||
// copy the current state
|
||||
hstate2.shiftreg = hstate.shiftreg;
|
||||
|
@ -317,8 +311,8 @@ static void *buildtable(void *dd) {
|
|||
|
||||
// get 48 bits of keystream from hstate2
|
||||
// this is split into 2 x 24 bit
|
||||
ks1 = hitag2_nstep(&hstate2, 24);
|
||||
ks2 = hitag2_nstep(&hstate2, 24);
|
||||
uint32_t ks1 = hitag2_nstep(&hstate2, 24);
|
||||
uint32_t ks2 = hitag2_nstep(&hstate2, 24);
|
||||
|
||||
write_ks_s(ks1, ks2, hstate.shiftreg);
|
||||
|
||||
|
@ -457,10 +451,6 @@ static void *sorttable(void *dd) {
|
|||
int main(int argc, char *argv[]) {
|
||||
pthread_t threads[NUM_BUILD_THREADS];
|
||||
void *status;
|
||||
long i;
|
||||
int ret;
|
||||
struct table *t1;
|
||||
|
||||
|
||||
// make the table of tables
|
||||
t = (struct table *)malloc(sizeof(struct table) * 65536);
|
||||
|
@ -482,8 +472,8 @@ int main(int argc, char *argv[]) {
|
|||
builddi(2048, 2);
|
||||
|
||||
// start the threads
|
||||
for (i = 0; i < NUM_BUILD_THREADS; i++) {
|
||||
ret = pthread_create(&(threads[i]), NULL, buildtable, (void *)(i));
|
||||
for (long i = 0; i < NUM_BUILD_THREADS; i++) {
|
||||
int ret = pthread_create(&(threads[i]), NULL, buildtable, (void *)(i));
|
||||
if (ret) {
|
||||
printf("cannot start buildtable thread %ld\n", i);
|
||||
exit(1);
|
||||
|
@ -493,8 +483,8 @@ int main(int argc, char *argv[]) {
|
|||
if (debug) printf("main, started buildtable threads\n");
|
||||
|
||||
// wait for threads to finish
|
||||
for (i = 0; i < NUM_BUILD_THREADS; i++) {
|
||||
ret = pthread_join(threads[i], &status);
|
||||
for (long i = 0; i < NUM_BUILD_THREADS; i++) {
|
||||
int ret = pthread_join(threads[i], &status);
|
||||
if (ret) {
|
||||
printf("cannot join buildtable thread %ld\n", i);
|
||||
exit(1);
|
||||
|
@ -503,8 +493,8 @@ int main(int argc, char *argv[]) {
|
|||
}
|
||||
|
||||
// write all remaining files
|
||||
for (i = 0; i < 0x10000; i++) {
|
||||
t1 = t + i;
|
||||
for (long i = 0; i < 0x10000; i++) {
|
||||
struct table *t1 = t + i;
|
||||
if (t1->ptr > t1->data) {
|
||||
writetable(t1);
|
||||
}
|
||||
|
@ -520,8 +510,8 @@ int main(int argc, char *argv[]) {
|
|||
|
||||
|
||||
// start the threads
|
||||
for (i = 0; i < NUM_SORT_THREADS; i++) {
|
||||
ret = pthread_create(&(threads[i]), NULL, sorttable, (void *)(i));
|
||||
for (long i = 0; i < NUM_SORT_THREADS; i++) {
|
||||
int ret = pthread_create(&(threads[i]), NULL, sorttable, (void *)(i));
|
||||
if (ret) {
|
||||
printf("cannot start sorttable thread %ld\n", i);
|
||||
exit(1);
|
||||
|
@ -531,8 +521,8 @@ int main(int argc, char *argv[]) {
|
|||
if (debug) printf("main, started sorttable threads\n");
|
||||
|
||||
// wait for threads to finish
|
||||
for (i = 0; i < NUM_SORT_THREADS; i++) {
|
||||
ret = pthread_join(threads[i], &status);
|
||||
for (long i = 0; i < NUM_SORT_THREADS; i++) {
|
||||
int ret = pthread_join(threads[i], &status);
|
||||
if (ret) {
|
||||
printf("cannot join sorttable thread %ld\n", i);
|
||||
exit(1);
|
||||
|
|
|
@ -124,9 +124,7 @@ static int is_kmiddle_badguess(uint64_t z, struct Tklower *Tk, int max, int aR0)
|
|||
// function to test if a partial key is valid
|
||||
static int testkey(uint64_t *out, uint64_t uid, uint64_t pkey, uint64_t nR, uint64_t aR) {
|
||||
uint64_t kupper;
|
||||
uint64_t key;
|
||||
Hitag_State hstate;
|
||||
uint64_t b;
|
||||
uint32_t revaR;
|
||||
uint32_t normaR;
|
||||
|
||||
|
@ -136,9 +134,9 @@ static int testkey(uint64_t *out, uint64_t uid, uint64_t pkey, uint64_t nR, uint
|
|||
|
||||
// search for remaining 14 bits
|
||||
for (kupper = 0; kupper < 0x3fff; kupper++) {
|
||||
key = (kupper << 34) | pkey;
|
||||
uint64_t key = (kupper << 34) | pkey;
|
||||
hitag2_init(&hstate, key, uid, nR);
|
||||
b = hitag2_nstep(&hstate, 32);
|
||||
uint64_t b = hitag2_nstep(&hstate, 32);
|
||||
if ((normaR ^ b) == 0xffffffff) {
|
||||
*out = key;
|
||||
return 1;
|
||||
|
@ -183,7 +181,6 @@ static void *crack(void *d) {
|
|||
uint64_t klower, kmiddle, klowery;
|
||||
uint64_t y, b, z, bit;
|
||||
uint64_t ytmp;
|
||||
unsigned int count;
|
||||
uint64_t foundkey, revkey;
|
||||
int ret;
|
||||
unsigned int found;
|
||||
|
@ -210,7 +207,7 @@ static void *crack(void *d) {
|
|||
for (klower = data->klowerstart; klower < (data->klowerstart + data->klowerrange); klower++) {
|
||||
printf("trying klower = 0x%05"PRIx64"\n", klower);
|
||||
// build table
|
||||
count = 0;
|
||||
unsigned int count = 0;
|
||||
for (y = 0; y < 0x40000; y++) {
|
||||
// create klowery
|
||||
klowery = (y << 16) | klower;
|
||||
|
|
|
@ -429,9 +429,6 @@ static double score(uint64_t s, unsigned int size, uint64_t ks, unsigned int kss
|
|||
|
||||
/* score_traces runs score for each encrypted nonce */
|
||||
static void score_traces(struct guess *g, unsigned int size) {
|
||||
uint64_t lfsr;
|
||||
unsigned int i;
|
||||
double sc;
|
||||
double total_score = 0.0;
|
||||
|
||||
// don't bother scoring traces that are already losers
|
||||
|
@ -439,12 +436,12 @@ static void score_traces(struct guess *g, unsigned int size) {
|
|||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < num_nRaR; i++) {
|
||||
for (unsigned int i = 0; i < num_nRaR; i++) {
|
||||
// calc next b
|
||||
// create lfsr - lower 32 bits is uid, upper 16 bits are lower 16 bits of key
|
||||
// then shift by size - 16, insert upper key XOR enc_nonce XOR bitstream,
|
||||
// and calc new bit b
|
||||
lfsr = (uid >> (size - 16)) | ((g->key << (48 - size)) ^
|
||||
uint64_t lfsr = (uid >> (size - 16)) | ((g->key << (48 - size)) ^
|
||||
((nonces[i].enc_nR ^ g->b0to31[i]) << (64 - size)));
|
||||
g->b0to31[i] = g->b0to31[i] | (ht2crypt(lfsr) << (size - 16));
|
||||
|
||||
|
@ -452,7 +449,7 @@ static void score_traces(struct guess *g, unsigned int size) {
|
|||
// bits 16-47 are upper bits of key XOR enc_nonce XOR bitstream
|
||||
lfsr = g->key ^ ((nonces[i].enc_nR ^ g->b0to31[i]) << 16);
|
||||
|
||||
sc = score(lfsr, size, nonces[i].ks, 32);
|
||||
double sc = score(lfsr, size, nonces[i].ks, 32);
|
||||
|
||||
// look out for losers
|
||||
if (sc == 0.0) {
|
||||
|
@ -616,17 +613,13 @@ static void execute_round(unsigned int size) {
|
|||
|
||||
/* crack is the main cracking algo; it executes the rounds */
|
||||
static void crack(void) {
|
||||
unsigned int i;
|
||||
uint64_t revkey;
|
||||
uint64_t foundkey;
|
||||
|
||||
for (i = 16; i <= 48; i++) {
|
||||
for (unsigned int i = 16; i <= 48; i++) {
|
||||
fprintf(stderr, "round %2u, size=%2u\n", i - 16, i);
|
||||
execute_round(i);
|
||||
|
||||
// print some metrics
|
||||
revkey = rev64(guesses[0].key);
|
||||
foundkey = ((revkey >> 40) & 0xff) | ((revkey >> 24) & 0xff00) | ((revkey >> 8) & 0xff0000) | ((revkey << 8) & 0xff000000) | ((revkey << 24) & 0xff00000000) | ((revkey << 40) & 0xff0000000000);
|
||||
uint64_t revkey = rev64(guesses[0].key);
|
||||
uint64_t foundkey = ((revkey >> 40) & 0xff) | ((revkey >> 24) & 0xff00) | ((revkey >> 8) & 0xff0000) | ((revkey << 8) & 0xff000000) | ((revkey << 24) & 0xff00000000) | ((revkey << 40) & 0xff0000000000);
|
||||
fprintf(stderr, " guess=%012" PRIx64 ", num_guesses = %u, top score=%1.10f, min score=%1.10f\n", foundkey, num_guesses, guesses[0].score, guesses[num_guesses - 1].score);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -802,7 +802,7 @@ static void *find_state(void *thread_d) {
|
|||
|
||||
static void try_state(uint64_t s) {
|
||||
Hitag_State hstate;
|
||||
uint64_t keyrev, key, nR1xk;
|
||||
uint64_t keyrev, nR1xk;
|
||||
uint32_t b = 0;
|
||||
|
||||
hstate.shiftreg = s;
|
||||
|
@ -820,7 +820,7 @@ static void try_state(uint64_t s) {
|
|||
hitag2_init(&hstate, keyrev, uid, nR2);
|
||||
if ((aR2 ^ hitag2_nstep(&hstate, 32)) == 0xffffffff) {
|
||||
|
||||
key = rev64(keyrev);
|
||||
uint64_t key = rev64(keyrev);
|
||||
|
||||
printf("Key: ");
|
||||
for (int i = 0; i < 6; i++) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue