mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-04-22 12:20:08 +08:00
FIX: cherrypick some fixes from https://github.com/Proxmark/proxmark3/pull/550 (pwpiwi)
This commit is contained in:
parent
fe2f99190b
commit
aad1e65b97
3 changed files with 11 additions and 45 deletions
client
|
@ -144,13 +144,6 @@ static inline void set_bit24(uint32_t *bitarray, uint32_t index)
|
||||||
bitarray[index>>5] |= 0x80000000>>(index&0x0000001f);
|
bitarray[index>>5] |= 0x80000000>>(index&0x0000001f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline void clear_bit24(uint32_t *bitarray, uint32_t index)
|
|
||||||
{
|
|
||||||
bitarray[index>>5] &= ~(0x80000000>>(index&0x0000001f));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static inline uint32_t test_bit24(uint32_t *bitarray, uint32_t index)
|
static inline uint32_t test_bit24(uint32_t *bitarray, uint32_t index)
|
||||||
{
|
{
|
||||||
return bitarray[index>>5] & (0x80000000>>(index&0x0000001f));
|
return bitarray[index>>5] & (0x80000000>>(index&0x0000001f));
|
||||||
|
@ -191,42 +184,6 @@ static inline uint32_t next_state(uint32_t *bitarray, uint32_t state)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static inline uint32_t next_not_state(uint32_t *bitarray, uint32_t state)
|
|
||||||
{
|
|
||||||
if (++state == 1<<24) return 1<<24;
|
|
||||||
uint32_t index = state >> 5;
|
|
||||||
uint_fast8_t bit = state & 0x1f;
|
|
||||||
uint32_t line = bitarray[index] << bit;
|
|
||||||
while (bit <= 0x1f) {
|
|
||||||
if ((line & 0x80000000) == 0) return state;
|
|
||||||
state++;
|
|
||||||
bit++;
|
|
||||||
line <<= 1;
|
|
||||||
}
|
|
||||||
index++;
|
|
||||||
while (bitarray[index] == 0xffffffff && state < 1<<24) {
|
|
||||||
index++;
|
|
||||||
state += 0x20;
|
|
||||||
}
|
|
||||||
if (state >= 1<<24) return 1<<24;
|
|
||||||
#if defined __GNUC__
|
|
||||||
return state + __builtin_clz(~bitarray[index]);
|
|
||||||
#else
|
|
||||||
bit = 0x00;
|
|
||||||
line = bitarray[index];
|
|
||||||
while (bit <= 0x1f) {
|
|
||||||
if ((line & 0x80000000) == 0) return state;
|
|
||||||
state++;
|
|
||||||
bit++;
|
|
||||||
line <<= 1;
|
|
||||||
}
|
|
||||||
return 1<<24;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define BITFLIP_2ND_BYTE 0x0200
|
#define BITFLIP_2ND_BYTE 0x0200
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -138,8 +138,13 @@ bool verify_key(uint32_t cuid, noncelist_t *nonces, uint8_t *best_first_bytes, u
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
static void*
|
||||||
static void* __attribute__((force_align_arg_pointer)) crack_states_thread(void* x){
|
#ifdef __has_attribute
|
||||||
|
#if __has_attribute(force_align_arg_pointer)
|
||||||
|
__attribute__((force_align_arg_pointer))
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
crack_states_thread(void* x){
|
||||||
struct arg {
|
struct arg {
|
||||||
bool silent;
|
bool silent;
|
||||||
int thread_ID;
|
int thread_ID;
|
||||||
|
|
|
@ -37,8 +37,12 @@ void msleep(uint32_t n) {
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
|
|
||||||
|
#ifndef CLOCK_MONOTONIC
|
||||||
#define CLOCK_MONOTONIC (1)
|
#define CLOCK_MONOTONIC (1)
|
||||||
|
#endif
|
||||||
|
#ifndef CLOCK_REALTIME
|
||||||
#define CLOCK_REALTIME (2)
|
#define CLOCK_REALTIME (2)
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <mach/clock.h>
|
#include <mach/clock.h>
|
||||||
|
|
Loading…
Add table
Reference in a new issue