mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 13:53:55 -07:00
FIX: Some <= fix for pwpivi 's hardnested suggested on the Pm3 forum.
This commit is contained in:
parent
738eeccd9d
commit
4b2e63be17
1 changed files with 11 additions and 13 deletions
|
@ -287,19 +287,17 @@ static float sum_probability(uint16_t K, uint16_t n, uint16_t k)
|
||||||
{
|
{
|
||||||
const uint16_t N = 256;
|
const uint16_t N = 256;
|
||||||
|
|
||||||
|
if (k > K || p_K[K] == 0.0) return 0.0;
|
||||||
|
|
||||||
|
double p_T_is_k_when_S_is_K = p_hypergeometric(N, K, n, k);
|
||||||
if (k > K || p_K[K] == 0.0) return 0.0;
|
double p_S_is_K = p_K[K];
|
||||||
|
double p_T_is_k = 0;
|
||||||
double p_T_is_k_when_S_is_K = p_hypergeometric(N, K, n, k);
|
for (uint16_t i = 0; i <= 256; i++) {
|
||||||
double p_S_is_K = p_K[K];
|
if (p_K[i] != 0.0) {
|
||||||
double p_T_is_k = 0;
|
p_T_is_k += p_K[i] * p_hypergeometric(N, i, n, k);
|
||||||
for (uint16_t i = 0; i <= 256; i++) {
|
|
||||||
if (p_K[i] != 0.0) {
|
|
||||||
p_T_is_k += p_K[i] * p_hypergeometric(N, i, n, k);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return(p_T_is_k_when_S_is_K * p_S_is_K / p_T_is_k);
|
}
|
||||||
|
return(p_T_is_k_when_S_is_K * p_S_is_K / p_T_is_k);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -514,7 +512,7 @@ static void sort_best_first_bytes(void)
|
||||||
// determine how many are above the CONFIDENCE_THRESHOLD
|
// determine how many are above the CONFIDENCE_THRESHOLD
|
||||||
uint16_t num_good_nonces = 0;
|
uint16_t num_good_nonces = 0;
|
||||||
for (uint16_t i = 0; i < 256; i++) {
|
for (uint16_t i = 0; i < 256; i++) {
|
||||||
if (nonces[best_first_bytes[i]].Sum8_prob > CONFIDENCE_THRESHOLD) {
|
if (nonces[best_first_bytes[i]].Sum8_prob >= CONFIDENCE_THRESHOLD) {
|
||||||
++num_good_nonces;
|
++num_good_nonces;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -603,7 +601,7 @@ static uint16_t estimate_second_byte_sum(void)
|
||||||
|
|
||||||
uint16_t num_good_nonces = 0;
|
uint16_t num_good_nonces = 0;
|
||||||
for (uint16_t i = 0; i < 256; i++) {
|
for (uint16_t i = 0; i < 256; i++) {
|
||||||
if (nonces[best_first_bytes[i]].Sum8_prob > CONFIDENCE_THRESHOLD) {
|
if (nonces[best_first_bytes[i]].Sum8_prob >= CONFIDENCE_THRESHOLD) {
|
||||||
++num_good_nonces;
|
++num_good_nonces;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue