mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-04-02 18:39:57 +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);
|
||||
}
|
||||
|
||||
|
||||
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)
|
||||
{
|
||||
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
|
||||
|
||||
|
||||
|
|
|
@ -138,8 +138,13 @@ bool verify_key(uint32_t cuid, noncelist_t *nonces, uint8_t *best_first_bytes, u
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static void* __attribute__((force_align_arg_pointer)) crack_states_thread(void* x){
|
||||
static void*
|
||||
#ifdef __has_attribute
|
||||
#if __has_attribute(force_align_arg_pointer)
|
||||
__attribute__((force_align_arg_pointer))
|
||||
#endif
|
||||
#endif
|
||||
crack_states_thread(void* x){
|
||||
struct arg {
|
||||
bool silent;
|
||||
int thread_ID;
|
||||
|
|
|
@ -37,8 +37,12 @@ void msleep(uint32_t n) {
|
|||
|
||||
#ifdef __APPLE__
|
||||
|
||||
#ifndef CLOCK_MONOTONIC
|
||||
#define CLOCK_MONOTONIC (1)
|
||||
#endif
|
||||
#ifndef CLOCK_REALTIME
|
||||
#define CLOCK_REALTIME (2)
|
||||
#endif
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <mach/clock.h>
|
||||
|
|
Loading…
Add table
Reference in a new issue