Skip to content

Commit

Permalink
Merge pull request #2 from iceman1001/master
Browse files Browse the repository at this point in the history
Update
  • Loading branch information
huatux authored Apr 21, 2021
2 parents 7210071 + a23414f commit 0d0a3ca
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 34 deletions.
12 changes: 12 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: iceman1001
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ["https://www.paypal.me/iceman1001"]
22 changes: 13 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,26 @@
Iceman fork
===============
[Deprecated] Iceman fork
=========================
[![Build Status](https://travis-ci.org/iceman1001/proxmark3.svg?branch=master)](https://travis-ci.org/iceman1001/proxmark3)[![Coverity Status](https://scan.coverity.com/projects/5117/badge.svg)](https://scan.coverity.com/project/proxmark3_iceman_fork)[![Latest release](https://img.shields.io/github/release/iceman1001/proxmark3.svg)](https://github.com/iceman1001/proxmark3/releases/latest)

## This fork is HIGHLY experimental and bleeding edge
# THIS FORK HAS BEEN DEPRECATED, USE RRG/ICEMAN REPO INSTEAD!

Ref: [Proxmark3 RDV4.0 github repository](https://github.com/RfidResearchGroup/proxmark3)

The kickstarter for the latest revision of proxmark is out.
[proxmark3 rdv4.0](https://www.kickstarter.com/projects/1408815241/proxmark3-rdv-40)

That one is a beauty!
The RRG/Iceman repo is based upon this repo. Much development has been put into the RRG repo to bring support to all new hardware features.
The repo fully support all of them; like the flashmemory, smarcard sim module, high powered antennas, FPC port with serial over USART to mention them briefly.

The RRG repo has a universial Proxmark client. The repo can be easily (I really mean it) used with all kinds of Proxmark3 devices, like the green pcb, RDV2.0, RDV3.0 Easy, Proxmark Evolution, etc. It also fully supports and compiles a range of standalone modes with just one setting in the Makefile. Proxmarking has never been this easy.
I do recommend you check it out.

===============================================================================


## Nothing says thank you as much as a donation
https://www.patreon.com/iceman1001 Feel free to donate. All support is welcome.
If you feel the love, do feel free to become a iceman patron. For some tiers it comes with rewards
https://www.patreon.com/iceman1001

All support is welcome.

monereo: 43mNJLpgBVaTvyZmX9ajcohpvVkaRy1kbZPm8tqAb7itZgfuYecgkRF36rXrKFUkwEGeZedPsASRxgv4HPBHvJwyJdyvQuP

## Notice
There is so much in this fork, with all fixes and additions its basically the most enhanced fork to this day for the Proxmark3 device. Which makes it so awesum to play with. Do please play with it. Get excited and experiment. As a side note with all coverity scan fixes this client is much more stable than PM3 Master even if I tend to break it sometimes. I'll try to make a release when this fork becomes stable between my experiments.
Expand Down
14 changes: 7 additions & 7 deletions armsrc/iso14443b.c
Original file line number Diff line number Diff line change
Expand Up @@ -1255,7 +1255,7 @@ uint8_t iso14443b_select_card(iso14b_card_select_t *card ) {

// VALIDATE CRC
if (!check_crc(CRC_14443_B, Demod.output, Demod.len)) {
if (MF_DBGLEVEL > 3) Dbprintf("iso1443b_setup crc fail");
if (MF_DBGLEVEL > 3) Dbprintf("iso14443b_setup crc fail");
return 3;
}

Expand All @@ -1280,7 +1280,7 @@ uint8_t iso14443b_select_card(iso14b_card_select_t *card ) {

// VALIDATE CRC
if (!check_crc(CRC_14443_B, Demod.output, Demod.len) ) {
if (MF_DBGLEVEL > 3) Dbprintf("iso1443b_setup crc2 fail");
if (MF_DBGLEVEL > 3) Dbprintf("iso14443b_setup crc2 fail");
return 3;
}

Expand Down Expand Up @@ -1314,7 +1314,7 @@ uint8_t iso14443b_select_card(iso14b_card_select_t *card ) {
// Set up ISO 14443 Type B communication (similar to iso14443a_setup)
// field is setup for "Sending as Reader"
void iso14443b_setup() {
if (MF_DBGLEVEL > 3) Dbprintf("iso1443b_setup Enter");
if (MF_DBGLEVEL > 3) Dbprintf("iso14443b_setup Enter");
LEDsoff();
FpgaDownloadAndGo(FPGA_BITSTREAM_HF);
//BigBuf_free();
Expand All @@ -1338,7 +1338,7 @@ void iso14443b_setup() {
StartCountSspClk();

LED_D_ON();
if (MF_DBGLEVEL > 3) Dbprintf("iso1443b_setup Exit");
if (MF_DBGLEVEL > 3) Dbprintf("iso14443b_setup Exit");
}

//-----------------------------------------------------------------------------
Expand Down Expand Up @@ -1471,7 +1471,7 @@ void ReadSTMemoryIso14443b(uint8_t numofblocks) {
}

static void iso1444b_setup_sniff(void){
if (MF_DBGLEVEL > 3) Dbprintf("iso1443b_setup_sniff Enter");
if (MF_DBGLEVEL > 3) Dbprintf("iso14443b_setup_sniff Enter");
LEDsoff();
FpgaDownloadAndGo(FPGA_BITSTREAM_HF);
BigBuf_free();
Expand Down Expand Up @@ -1505,7 +1505,7 @@ static void iso1444b_setup_sniff(void){
// Start the SSP timer
StartCountSspClk();

if (MF_DBGLEVEL > 3) Dbprintf("iso1443b_setup_sniff Exit");
if (MF_DBGLEVEL > 3) Dbprintf("iso14443b_setup_sniff Exit");
}

//=============================================================================
Expand Down Expand Up @@ -1704,4 +1704,4 @@ void SendRawCommand14443B_Ex(UsbCommand *c) {
//FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_TX | FPGA_HF_READER_TX_SHALLOW_MOD);
}

}
}
21 changes: 21 additions & 0 deletions client/default_keys.dic
Original file line number Diff line number Diff line change
Expand Up @@ -611,3 +611,24 @@ C01FC822C6E5
# More keys:
8a19d40cf2b5
ae8587108640
#
# Following keys were extracted from the ScanBadge Android app (fr.badgevigik.scanbadge)
# Creators claims it should cover most Vigik vendors and implementations
# Intratone, Comelit, Urmet, Hexact, Noralsy, Bitron, Bticino, CDVI, HID, Immotec, Aiphone
4a4c474f524d
444156494442
434143445649
434456495243
a00002000021
ef61a3d48e2a
a23456789123
010000000000
363119000001
a00003000084
4143414f5250
4243414f5250
675a32413770
395244733978
a0004a000036
2c9f3d45ba13
dfe73be48ac6
8 changes: 1 addition & 7 deletions client/lualibs/hf_reader.lua
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,7 @@ local function sendToDevice(command, ignoreresponse)
return response,nil
end

-------------------------------------------------------
-- This will be moved to a separate 14443B library
-------------------------------------------------------

local reader14443B = {
read = reader14443B.read14443b()
}
-------------------------------------------------------
-- This will be moved to a separate 1593 library
-------------------------------------------------------
Expand Down Expand Up @@ -185,4 +179,4 @@ end

return {
waitForTag = waitForTag,
}
}
4 changes: 2 additions & 2 deletions client/lualibs/read14a.lua
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ local function parse14443a(data)
local count, uid, uidlen, atqa, sak, ats_len, ats = bin.unpack('H10CH2CC',data)
uid = uid:sub(1, 2*uidlen)
--print("uid, atqa, sak: ",uid, atqa, sak)
--print("TYPE: ", tostring_1443a(sak))
--print("TYPE: ", tostring_14443a(sak))
return { uid = uid, atqa = atqa, sak = sak, name = tostring_14443a(sak), data = data}
end

Expand Down Expand Up @@ -141,7 +141,7 @@ local function waitFor14443a()
end
local library = {
read = read14443a,
read = read14443a,
read14443a = read14443a,
waitFor14443a = waitFor14443a,
parse14443a = parse14443a,
sendToDevice = sendToDevice,
Expand Down
15 changes: 9 additions & 6 deletions client/lualibs/read14b.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
This is a library to read 14443b tags. It can be used something like this
local reader = require('read14b')
result, err = reader.select1443b()
result, err = reader.select14443b()
if not result then
print(err)
return
Expand All @@ -25,7 +25,7 @@ local ISO14B_COMMAND = {
ISO14B_SELECT_SR = 0x80,
}

local function parse1443b(data)
local function parse14443b(data)
--[[
Based on this struct :
Expand Down Expand Up @@ -101,7 +101,7 @@ local function read14443b(disconnect)
local count,cmd,arg0,arg1,arg2 = bin.unpack('LLLL',result)
if arg0 == 0 then
data = string.sub(result, count)
info, err = parse1443b(data)
info, err = parse14443b(data)
else
err = "iso14443b card select failed"
end
Expand Down Expand Up @@ -147,12 +147,15 @@ local function waitFor14443b()
end

local library = {
parse1443b = parse1443b,
read1443b = read14443b,
parse14443b = parse14443b,
parse1443b = parse14443b,
read = read14443b,
read14443b = read14443b,
read1443b = read14443b,
waitFor14443b = waitFor14443b,
sendToDevice = sendToDevice,
showData = showData,
ISO14B_COMMAND = ISO14B_COMMAND,
}

return library
return library
2 changes: 1 addition & 1 deletion client/scripts/amiibo.lua
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ local function main(args)
return
end

parsed_tag = reader.parse1443a(tag)
parsed_tag = reader.parse14443a(tag)
print('Tag type:', parsed_tag.name)
print('Tag UID:', parsed_tag.uid)
print('Tag len:', tag:len())
Expand Down
10 changes: 8 additions & 2 deletions uart/uart_posix.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ serial_port uart_open(const char* pcPortName)
if (sp == 0) return INVALID_SERIAL_PORT;

if (memcmp(pcPortName, "tcp:", 4) == 0) {
struct addrinfo *addr, *rp;
struct addrinfo *addr = NULL, *rp;
char *addrstr = strdup(pcPortName + 4);
if (addrstr == NULL) {
printf("Error: strdup\n");
Expand All @@ -96,7 +96,13 @@ if (colon) {
} else
portstr = "7901";

int s = getaddrinfo(addrstr, portstr, NULL, &addr);
struct addrinfo info;

memset (&info, 0, sizeof(info));

info.ai_socktype = SOCK_STREAM;

int s = getaddrinfo(addrstr, portstr, &info, &addr);
if (s != 0) {
printf("Error: getaddrinfo: %s\n", gai_strerror(s));
return INVALID_SERIAL_PORT;
Expand Down

0 comments on commit 0d0a3ca

Please sign in to comment.