GithubHelp home page GithubHelp logo

iceman1001 / proxmark3 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from proxmark/proxmark3

465.0 62.0 116.0 21.87 MB

[Deprecated] Iceman Fork, the most totally wicked fork around if you are into proxmark3

Home Page: http://www.icedev.se/pm3.aspx

License: GNU General Public License v2.0

Makefile 0.60% C 85.11% C++ 4.18% Assembly 0.03% Shell 0.32% Lua 7.31% Python 0.35% Verilog 1.47% Tcl 0.02% Batchfile 0.02% Coq 0.12% Awk 0.03% Objective-C 0.37% Perl 0.09%
rfid cryptography mifare proxmark3 iso15693 iso14443a iso14443b 125khz sniff clone simulate nfc proxmark pm3 iceman

proxmark3's Introduction

[Deprecated] Iceman fork

Build StatusCoverity StatusLatest release

THIS FORK HAS BEEN DEPRECATED, USE RRG/ICEMAN REPO INSTEAD!

Ref: Proxmark3 RDV4.0 github repository

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

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.

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.

Coverity Scan Config & Run

Download the Coverity Scan Self-buld and install it. You will need to configure ARM-NON-EABI- Compiler for it to use:

  • Configure

cov-configure --comptype gcc --compiler /opt/devkitpro/devkitARM/bin/arm-none-eabi-gcc

  • Run it (I'm running on Ubuntu)

cov-build --dir cov-int make all

  • Make a tarball

tar czvf proxmark3.tgz cov-int

  • Upload it to coverity.com

Whats changed?

Whats so special with this fork? I have scraped the web for different enhancements to the PM3 source code and not all of them ever found their way to the master branch. Among the stuff is

* Jonor's hf 14a raw timing patch
* Piwi's updates. (usually gets into the master)
* Piwi's "topaz" branch
* Piwi's "hardnested" branch 
* Holiman's iclass, (usually gets into the master)
* Marshmellow's fixes (usually gets into the master)
* Midnitesnake's Ultralight,  Ultralight-c enhancements
* Izsh's lf peak modification / iir-filtering
* Aspers's tips and tricks from inside the PM3-gui-tool, settings.xml and other stuff.
* My own desfire, Ultralight extras, LF T55xx enhancements, bugs fixes (filelength, hf mf commands ), TNP3xxx lua scripts,  Awid26,  skidata scripts (will come)
* other obscure patches like for the sammy-mode,  (offline you know), tagidentifications, defaultkeys. 
* Minor textual changes here and there.
* Simulation of Ultralight/Ntag.
* Marshmellow's and my "RevEng" addon for the client.  Ref: http://reveng.sourceforge.net/    Now using reveng1.44
* J-Run alternative bruteforce Mifare nested auths.. (you need one other exe to make it work)
* A Bruteforce for T55XX passwords against tag.
* A Bruteforce for AWID 26, starting w a facilitycode then trying all 0xFFFF cardnumbers via simulation. To be used against a AWID Reader.
* A Bruteforce for HID,  starting w a facilitycode then trying all 0xFFFF cardnumbers via simulation. To be used against a HID Reader.
* Blaposts Crapto1 v3.3
* Icsom's  legic script and legic enhancements
* Aczid's bitsliced bruteforce solver in 'hf mf hardnested'

Why don't you merged with offical PM3 Master?

Me fiddling with the code so much, there is a nightmare in merging a PR. I will never find time to do PR because of it. Much of what you find here is not in the interest for offical PM3. However and luckily I have @marshmellow42 who takes some stuff and push PR's back. The separation from offical pm3 repo gives me very much freedom to create a firmware/client in the way I want to use the PM3.

Why don't you add this or that functionality?

Give me a hint, and I'll see if I can't merge in the stuff you have.

PM3 GUI

I do tend to rename and move stuff around, the official PM3-GUI from Gaucho will not work so well. sorry

Development

This fork now compiles just fine on

  • Windows/mingw environment with Qt5.6.1 & GCC 4.8
  • Ubuntu 1404, 1510, 1604
  • Mac OS X / Homebrew
  • Docker container

Setup and build for UBUNTU

GC made updates to allow this to build easily on Ubuntu 14.04.2 LTS, 15.10 or 16.04 See https://github.com/Proxmark/proxmark3/wiki/Ubuntu%20Linux

A nice and cool install script made by @daveio is found here: https://github.com/daveio/attacksurface/blob/master/proxmark3/pm3-setup.sh I have also added this script to the fork. https://github.com/iceman1001/proxmark3/blob/master/install.sh

  • Run sudo apt-get install p7zip git build-essential libreadline5 libreadline-dev libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config wget libncurses5-dev gcc-arm-none-eabi

  • Clone iceman fork git clone https://github.com/iceman1001/proxmark3.git

  • Get the latest commits git pull

  • Install the blacklist rules and add user to dialout group (if you on a Linux/ubuntu/debian). If you do this one, you need to logout and login in again to make sure your rights got changed. make udev

  • Clean and complete compilation make clean && make all

  • Flash the BOOTROM & FULLIMAGE client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf

  • Change into the client folder cd client

  • Run the client ./proxmark3 /dev/ttyACM0

Setup and build for ArchLinux

  • Run sudo pacman -Sy base-devel p7zip libusb readline ncurses arm-none-eabi-newlib --needed yaourt -S termcap

  • Clone iceman fork git clone https://github.com/iceman1001/proxmark3.git

  • Get the latest commits git pull

  • Install the blacklist rules and add user to dialout group (if you on a Linux/ubuntu/debian). If you do this one, you need to logout and login in again to make sure your rights got changed. make udev

  • Clean and complete compilation make clean && make all

  • Flash the BOOTROM & FULLIMAGE client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf

  • Change into the client folder cd client

  • Run the client ./proxmark3 /dev/ttyACM0

Homebrew (Mac OS X)

These instructions comes from @Chrisfu, where I got the proxmark3.rb scriptfile from. Further questions about Mac & Homebrew, contact @Chrisfu (https://github.com/chrisfu/)

  1. Install homebrew if you haven't yet already done so: http://brew.sh/

  2. Tap this repo: brew tap iceman1001/proxmark3

  3. Install Proxmark3: brew install proxmark3 for stable release or brew install --HEAD proxmark3 for latest non-stable from GitHub.

Upgrading HomeBrew tap formula

This method is useful for those looking to run bleeding-edge versions of iceman's client. Keep this in mind when attempting to update your HomeBrew tap formula as this procedure could easily cause a build to break if an update is unstable on macOS.

Tested on macOS High Sierra 10.13.2

Note: This assumes you have already installed iceman's fork from HomeBrew as mentioned above

  1. Force HomeBrew to pull the latest source from github brew upgrade --fetch-HEAD iceman1001/proxmark3/proxmark3

  2. Flash the bootloader & fullimage.elf

  • With your Proxmark3 unplugged from your machine, press and hold the button on your Proxmark 3 as you plug it into a USB port. Continue to hold the button until after this step is complete and the proxmark3-flasher command outputs "Have a nice day!"* $ sudo proxmark3-flasher /dev/tty.usbmodem881 -b /usr/local/Cellar/proxmark3/HEAD-6a710ef/share/firmware/bootrom.elf /usr/local/Cellar/proxmark3/HEAD-6a710ef/share/firmware/fullimage.elf

$ sudo proxmark3-flasher /dev/tty.usbmodem881

  1. Enjoy the update

Docker container

I recently added a docker container on Docker HUB. You find it here: https://hub.docker.com/r/iceman1001/proxmark3/ Follow those instructions to get it up and running. No need for the old proxspace-environment anymore.

-[1.6.0] How to start: https://www.youtube.com/watch?v=b5Zta89Cf6Q -[1.6.0] How to connect: https://youtu.be/0ZS2t5C-caI -[1.6.1] How to flash: https://www.youtube.com/watch?v=WXouhuGYEiw

Recommendations: Use only latest container.

Building on Windows

Gator96100 distro

Rather than download and install every one of these packages, a new ProxSpace environment archive file will be made available for download on the project page at @Gator96100's repo

Afterwards just clone the iceman repo or download someone elses. Read instructions on @Gator96100 repo page. (https://github.com/Gator96100/ProxSpace/)

Links

7. Build and run

  • Clone iceman fork git clone https://github.com/iceman1001/proxmark3.git

  • Get the latest commits git pull

  • CLEAN COMPILE make clean && make all

Assuming you have Proxmark3 Windows drivers installed you can run the Proxmark software where "X" is the com port number assigned to proxmark3 under Windows.

  • Flash the BOOTROM & FULLIMAGE client/flasher.exe comX -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf

  • Change into the client folder cd client

  • Run the client proxmark3.exe comX

iceman at host iuse.se January 2015, Sweden

proxmark3's People

Contributors

0xffff avatar akileos avatar alexgrin avatar angelsl avatar bforbort avatar brianpow avatar ceres-c avatar cjbrigato avatar didierstevens avatar doegox avatar drandreas avatar grauerfuchs avatar holiman avatar iceman1001 avatar ikarus23 avatar izsh avatar j8048188 avatar joanbono avatar jpclair avatar k02a avatar marshmellow42 avatar matrix avatar micolous avatar midnitesnake avatar n0ncetonic avatar osysltd avatar p-l- avatar pwpiwi avatar tomharkness avatar winguru avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

proxmark3's Issues

LF divisor inconsistancy

LF part uses a 12 000 000 (12Mhz) clock to generate the carrier freq.

To get 125Khz (125000) we need a divisor to adjust the carrier freq.
Hence 12 000 000 / 125000 = 96.
However in the helptext for "hw setlfdivisor" it states

(19-255) Drive Antenna at 12Mhz / divisor+1

Its here we get the 125Khz divisor from "hw tune" output, 95, since 96-1 == 95.
So far so good.

134Khz, gives 12 000 000 / 134000 = 89.55

Testing:

divisor | (divisor * 134000) | diff

89 | (11926000) | 74000
90 | (12060000) | 60000

Smallest marginal is a divisor of 90, which would translate into PM3 settings like 90-1= 89.

Now this raises more questions. What is the definition of optimum divisor? The one which hits the sought after Khz? Or the one which diviates less from the target Khz?

In PM3 code:
all places in code uses "88" as optimum divisor for 134Khz.

LF SEARCH - hitag uid detection

When wiping a t5557 tag with "lf t55xx wipe" and run "lf search" afterwards the WDT hits after a timeout in Hitag uid detection.

Temporary patch; remove the hitag uid detection is pushed to repo.

LF - STT / strong ASK wave

The STT and Strong (clipped/Clean) ASKwave demod have some troubles.

reproduce:
(use t55x7 tag direct on antenna)
lf presco clone H 1001
da setd 2
lf presco read
--it fails.
however, move tag 2-3cm away from antenna and "lf presco read" again.
It will work, since now the askdemod will take the "weak askwave" path.

@marshmellow42 has identified some bugs.

hf mf can't select card

Dear Iceman,

Sorry to bother you. Im trying to write some data to the sectors using pm3 Easy version.
hf se goes well as well as first timehf mf wrbl, but the second hf mf wrbl says can't select card.
I may suppose that the problem is in the timings.

hf mf sim: CMD_SIMULATE_MIFARE_CARD response sends different to expected arguments

Poking through the sources:

https://github.com/iceman1001/proxmark3/blob/master/armsrc/iso14443a.c#L2983

Here if the INTERACTIVE flag is set for hf mf sim, then the ar_nr_responses are sent back to the host. However, when the client program actually gets the data, it tries to push this data into a nonces_t struct:

https://github.com/iceman1001/proxmark3/blob/master/client/cmdhfmf.c#L1502

Then this is pushed into the mfkey32 attack with bad parameters, when the debug strings suggest using mfkey32v2 (moebius).

What probably should happen here is that the device should encode and pass back the sector number and key ID in the same format as the nonces_t struct, so that the client can start attacking for the key.

I think that the hf mf sim codepath is out of sync with the rest of the repository, because hf 14a sim appears to be correct.

However, the debug strings for hf mf sim appear to indicate correct commands, while hf 14a sim doesn't appear to have correct data needed to calculate the key.

Also, the functionality to set the emulator memory doesn't appear to set the key correctly.

I'm working on a patch that will get hf mf sim working properly.

EMV commands not working

Got latest version installed (Uploaded <20hours ago).

EMV commands are not working.

pm3 --> hf emv trans
#db# unknown command:: 0x0701
pm3 --> hf emv getrng
#db# unknown command:: 0x0706
pm3 --> hf emv eload
File f not found or locked
pm3 --> hf emv dump
#db# unknown command:: 0x0708
Waiting for a response from the proxmark...
Don't forget to cancel its operation first by pressing on the button
Command execute time-out

hf 14b commands

The outlined remake of "hf 14b" commands is not finished.

  • hf 14b sim (not working)

can not compile since 20.1.

mifareutil.c: In function 'mifare_ultra_auth':
mifareutil.c:280:2: error: implicit declaration of function 'tdes_2key_dec' [-Werror=implicit-function-declaration]
tdes_2key_dec(random_b, enc_random_b, sizeof(random_b), key, IV );
^
mifareutil.c:300:2: error: implicit declaration of function 'tdes_2key_enc' [-Werror=implicit-function-declaration]
tdes_2key_enc(rnd_ab, rnd_ab, sizeof(rnd_ab), key, enc_random_b);
^
cc1: all warnings being treated as errors
make[1]: *** [obj/mifareutil.o] Error 1
make: *** [armsrc/all] Error 2

-> des.h is not activated in mifareutil.h. After activation, error is gone

iso14443b.c:69:3: error: redeclaration of enumerator 'STATE_UNSYNCD'
STATE_UNSYNCD,
^
In file included from mifareutil.h:21:0,
from iso14443b.h:25,
from iso14443b.c:11:
iso14443a.h:66:3: note: previous definition of 'STATE_UNSYNCD' was here
STATE_UNSYNCD,
^
iso14443b.c:102:3: error: redeclaration of enumerator 'DEMOD_UNSYNCD'
DEMOD_UNSYNCD,
^
In file included from mifareutil.h:21:0,
from iso14443b.h:25,
from iso14443b.c:11:
iso14443a.h:36:3: note: previous definition of 'DEMOD_UNSYNCD' was here
DEMOD_UNSYNCD,
^
make[1]: *** [obj/iso14443b.o] Error 1
make: *** [armsrc/all] Error 2

-> don't know how to handle it

System: macOS

hf mf hardnested - device fails to answer

hf mf hardnested - device fails to answer the call to brute_force fails.
On the client side it just iterates and sends the collecting nonce command but somehow the device doesn't want to do that. It goes inside the metod MifareAcquireEncryptedNonces() / armsrc/mifarecmd.c
but gets stuck in a loop.
I wonder if its the "while(GetCountSspClk() < timeout);" loop thats the cause to this behavior

FAC/Card No converter broken?

Hello I am on 5d8246, the Wiegand converter does not seem to work anymore. Is it only me?


pm3 --> lf hid wiegand 0 4 410
HID | OEM |  FC |   CN  |  Wiegand  |  HID Formatted          
----+-----+-----+-------+-----------+--------------------          
 -123776832 | 0  | 4  | 410  | 0000000000000000  |  0000000000000000          
 -123776832 | 0  | 4  | 410  | 0000000000000000  |  0000000000000000          
 -123776832 | 0  | 4  | 410  | 0000000000000000  |  0000000000000000          
 -123776832 | 0  | 4  | 410  | 0000000000000000  |  0000000000000000          
 -123776832 | 0  | 4  | 410  | 0000000000000000  |  0000000000000000          
 -123776832 | 0  | 4  | 410  | 0000000000000000  |  0000000000000000          
 -123776832 | 0  | 4  | 410  | 0000000000000000  |  0000000000000000          
----+-----+-----+-------+-----------+--------------------

hf 14a sim x -- can't recover key usign mfkey32

I try to use hf 14a sim t 1 u 1122344 x and get this:

Emulating ISO/IEC 14443 type A tag with 4 byte UID (11 22 33 44 )
Press pm3-button to abort simulation
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 0101010c 7dd47b66 03d3143f cc444d14 82dd5f9f
Enter mfkey32
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 01010116 c87267bc 2f0d4f4e 6f0ed790 5f402c85
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 01010120 fc105d69 4e2855d3 07b515ee cb529591
Time in mf32key: 521320 ticks 

Enter mfkey32_moebius
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 0101012a 82d67f5b 50a00161 b11cc9a6 c49cf766
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 01010134 011f8c4f 3893e58d 89a2e633 10f0dcde
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 0101013e 20cd029e 582b4a9a f4e5693f ffe62a46
Time in mfkey32_moebius: 524057 ticks 

Enter mfkey32
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 01010148 c7e28d00 050543bd 5db8b84b 0ef2daf0
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 01010152 64341e06 8b855314 55e38b2d c0263ffd
Time in mf32key: 513880 ticks 

Enter mfkey32_moebius
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 0101015c df6518a6 d2772509 fb538251 806ed0a9
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 01010166 8a28a6c8 f99fd53f b27a6df0 b521f2e3
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 01010170 bc06d228 cc7f82b6 8872259a 12125bb5
Time in mfkey32_moebius: 517238 ticks 

Enter mfkey32
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 0101017a 49d9369a 212b2877 2ab2fec8 00021419
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 01010184 d400949d 32ea0784 6eec461b c5f8b70f
Time in mf32key: 400049 ticks 

Enter mfkey32_moebius
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 0101018e d106bb80 46d29961 1ec04fb0 04c34eb7
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 01010198 4e5e1f22 debe6837 f0df9a67 a8ed1c99
Time in mfkey32_moebius: 405646 ticks 

Enter mfkey32
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 010101a2 f5f257d8 e4c79b30 01dbcba8 a6b6b7dc
Time in mf32key: 337041 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 328752 ticks 

Enter mfkey32
Time in mf32key: 441795 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 443736 ticks 

Enter mfkey32
Time in mf32key: 391389 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 397668 ticks 

Enter mfkey32
Time in mf32key: 431515 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 434262 ticks 

Enter mfkey32
Time in mf32key: 320496 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 319287 ticks 

Enter mfkey32
Time in mf32key: 375993 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 376867 ticks 

Enter mfkey32
Time in mf32key: 312789 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 315243 ticks 

Enter mfkey32
Time in mf32key: 381093 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 382302 ticks 

Enter mfkey32
Time in mf32key: 399618 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 391661 ticks 

Enter mfkey32
Time in mf32key: 310761 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 309417 ticks 

Enter mfkey32
Time in mf32key: 408467 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 411931 ticks 

Enter mfkey32
Time in mf32key: 387380 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 385217 ticks 

Enter mfkey32
Time in mf32key: 361426 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 360463 ticks 

#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 010101b0 dc26c937 ee7e73ce 37eb0caa da1a74c6
Enter mfkey32
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 010101bc cc8316d0 a9017c4a 563e7ffb 30cfed94
Time in mf32key: 363426 ticks 

Enter mfkey32_moebius
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 010101c6 57185912 8bbcd289 97879455 a6524bb0
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 010101d0 d70e23b5 8d04f480 8089da95 60dfb6a8
Time in mfkey32_moebius: 364397 ticks 

Enter mfkey32
Time in mf32key: 326639 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 324742 ticks 

Enter mfkey32
Time in mf32key: 420310 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 422265 ticks 

Enter mfkey32
Time in mf32key: 409619 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 402283 ticks 

#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 010101db c41a1759 0dc746ae 1c0466d8 3fdda2d5
Enter mfkey32
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 010101e5 ac2905be 549c01dd 879efee1 7758deda
Time in mf32key: 340741 ticks 

Enter mfkey32_moebius
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 010101ef 194b62d2 892797e4 9f969097 0275eda9
#db# Collected two pairs of AR/NR which can be used to extract keys from reader:
#db# ../tools/mfkey/mfkey32 11223344 010101f9 24182fff 5de0e23b 005a966b 411486e5
Time in mfkey32_moebius: 349865 ticks 

Enter mfkey32
Time in mf32key: 632524 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 638289 ticks 

Enter mfkey32
Time in mf32key: 417693 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 422874 ticks 

Enter mfkey32
Time in mf32key: 445529 ticks 

Enter mfkey32_moebius
Time in mfkey32_moebius: 447829 ticks 

When I run mfkey32 directly i get this:

$ ../tools/mfkey/mfkey32 11223344 01010148 c7e28d00 050543bd 5db8b84b 0ef2daf0

MIFARE Classic key recovery - based 32 bits of keystream
Recover key from two 32-bit reader authentication answers only!

Recovering key for:
    uid: 11223344
     nt: 01010148
 {nr_0}: c7e28d00
 {ar_0}: 050543bd
 {nr_1}: 5db8b84b
 {ar_1}: 0ef2daf0

LFSR succesors of the tag challenge:
  nt': febac9ae
 nt'': d4b5b5c3

Keystream used to generate {ar} and {at}:
  ks2: fbbf8a13
Time : 484377 ticks 

hf mf chk

Dear Iceman,

Just noticed, with the latest commit version hf mf chk stopped working for me. Also hf se works from time to time.
I've managed to get pm3 working only on a1ab594

Here is device info (pm3 easy):

bootrom: /-suspect 2015-04-02 15:12:04
os: icemanHEAD/v1.1.0-1472-ga1ab594-suspect 2016-08-26 21:17:59
LF FPGA image built for 2s30vq100 on 2015/03/06 at 07:38:04
HF FPGA image built for 2s30vq100 on 2015/11/ 2 at 9: 8: 8
uC: AT91SAM7S256 Rev D
Embedded Processor: ARM7TDMI
Nonvolatile Program Memory Size: 256K bytes. Used: 216596 bytes (83%). Free: 45548 bytes (17%).
Second Nonvolatile Program Memory Size: None
Internal SRAM Size: 64K bytes
Architecture Identifier: AT91SAM7Sxx Series
Nonvolatile Program Memory Type: Embedded Flash Memory

LF Idteck - unfinished

Added a demod for PSK1, Idteck tags. 64bits / 2blocks.
First block is same, and used as preamble.
Second block is unknown. It looks encrypted, but 32bits?
Or a major scramble algo.

LF EM 4305/4x50/4x69 functionality

The old em4x50 / em4x69 functionality is in need for a clean up and refactor,

@marshmellow42 and I have started to remake it. The goal is to enable PM3 to use EM4305 like it supposed to be with commandset read, write, login which leads us to implement info, dump, restore(?) functionality. Much like the current implementation of T55x7 commands in PM3

To clearify: EM4305 can just like T55x7 mimic other tags. Somewhat lesser options but still.

Improve Windows instructions / Add Kali Linux (and Nethunter)

Hey!
Just a little Tip, why don't you guys use something link the official proxmark3, a downloadable proxspace where you just need to clone the repo and run make? Also, Bash for Windows install support would be nice (and faster).
Also, Instructions for Kali Linux and Nethunter are missing. Im trying right now on Nethunter.
Thank you,
Gabriel

Cannot compile nonce2key/crypto1_bs.c

Hi,
In my ProxSpace, I totally replaced the pm3 folder with your sources. I then executed the "make clean && make all" command.

Here is the error I encountered :

gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -/mingw/include -DHAVE_GUI -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED  -c -o obj/nonce2key/crypto1_bs.o nonce2key/crypto1_bs.c
In file included from nonce2key/crypto1_bs.c:25:
nonce2key/crypto1_bs.h:25: error: alignment of array elements is greater than element size
make[1]: *** [obj/nonce2key/crypto1_bs.o] Error 1
make[1]: Leaving directory `/pm3/client'
make: *** [client/all] Error 2

I tried removing the "-march=native" in the client\makefile as stated in http://www.proxmark.org/forum/viewtopic.php?pid=21093#p21093 and still got the same error.
Also tried to replace it with: "-mmmx" or "-msse", but got the same error every time...

I'm compiling on Windows 7 64 bits, Mingw32.
The main branch compiles well.
If I can give you more information tell me what you need.

hf legic sim - not working

Simulation for legic is not working at the moment.

The following outline on how it should work as below:

  • hf legic reader
  • hf legic dump
  • hf legic eload
  • hf legic sim
  • hf legic esave

Undefined references to `crc_update2'

Hello Iceman,

Sorry for bothering, but while trying to build the latest trunk getting the following error:

`obj/cmdhflegic.o: In function 'calc4':

/root/pm/ice/client/cmdhflegic.c:709: undefined reference to 'crc_update2'
/root/pm/ice/client/cmdhflegic.c:710: undefined reference to 'crc_update2'
/root/pm/ice/client/cmdhflegic.c:711: undefined reference to 'crc_update2'
/root/pm/ice/client/cmdhflegic.c:716: undefined reference to 'crc_update2'
/root/pm/ice/client/cmdhflegic.c:717: undefined reference to 'crc_update2'
obj/cmdhflegic.o:/root/pm/ice/client/cmdhflegic.c:718: more undefined references to 'crc_update2' follow
collect2: error: ld returned 1 exit status
Makefile:184: recipe for target 'proxmark3' failed
make[1]: *** [proxmark3] Error 1
make[1]: Leaving directory '/root/pm/ice/client'
Makefile:12: recipe for target 'client/all' failed
make: *** [client/all] Error 2
`
Haven't yet a chance to take a more precise look though.

compile git rep. on MacOS

In file included from /usr/local/Cellar/arm-none-eabi-gcc/20150921/arm-none-eabi/include/sys/types.h:63:0,
from /usr/local/Cellar/arm-none-eabi-gcc/20150921/arm-none-eabi/include/strings.h:13,
from desfire_crypto.h:5,
from desfire_crypto.c:28:
/usr/local/Cellar/arm-none-eabi-gcc/20150921/arm-none-eabi/include/sys/_stdint.h:31:19: error: conflicting types for 'int32_t'
typedef __int32_t int32_t ;
^
In file included from ./string.h:15:0,
from desfire_crypto.h:4,
from desfire_crypto.c:28:
./stdint.h:16:18: note: previous declaration of 'int32_t' was here
typedef int int32_t;
^
In file included from /usr/local/Cellar/arm-none-eabi-gcc/20150921/arm-none-eabi/include/sys/types.h:63:0,
from /usr/local/Cellar/arm-none-eabi-gcc/20150921/arm-none-eabi/include/strings.h:13,
from desfire_crypto.h:5,
from desfire_crypto.c:28:
/usr/local/Cellar/arm-none-eabi-gcc/20150921/arm-none-eabi/include/sys/_stdint.h:32:20: error: conflicting types for 'uint32_t'
typedef __uint32_t uint32_t ;
^
In file included from ./string.h:15:0,
from desfire_crypto.h:4,
from desfire_crypto.c:28:
./stdint.h:21:24: note: previous declaration of 'uint32_t' was here
typedef unsigned int uint32_t;
^
In file included from iso14443a.h:20:0,
from desfire_crypto.h:9,
from desfire_crypto.c:28:
../common/cmd.h:41:6: error: conflicting types for 'cmd_send'
bool cmd_send(uint32_t cmd, uint32_t arg0, uint32_t arg1, uint32_t arg2, void* data, size_t len);
^
In file included from ./util.h:18:0,
from ./string.h:16,
from desfire_crypto.h:4,
from desfire_crypto.c:28:
./apps.h:214:6: note: previous declaration of 'cmd_send' was here
bool cmd_send(uint32_t cmd, uint32_t arg0, uint32_t arg1, uint32_t arg2, void* data, size_t len);
^
make[1]: *** [obj/desfire_crypto.o] Error 1
make: *** [armsrc/all] Error 2

LF T55XX - fsk decoding

Inside 'lf t55xx' commands there is a missmatch (one bit off) when decoding tags which is configured with FSK. Easy to replicate, take "lf awid clone" or "lf pyramid clone" and look at the outputted blocks, then compare it with "lf t55 detect / lf t55 dump" output.
Every now and then, there is a block which has a one-bit offset wrong.

Homebrew: Authentication failed for 'https://github.com/iceman1001/homebrew-tap/'

Hi,
I'm running brew install proxmark3 after tapping the repo as in the README.md, but I'm getting the following error:

Authentication failed for 'https://github.com/iceman1001/homebrew-tap/'
Error: Failure while executing: git clone https://github.com/iceman1001/homebrew-tap /usr/local/Homebrew/Library/Taps/iceman1001/homebrew-tap --depth=1

Any ideas??
Thank you,
Gabriel

mfdes broken?

On latest commit 57850d9
Getting following errors in: mfdes
unknown command:: 0x072d, 0x072e, 0x072a...

Standalone modes not working

Hello! Just wanted to report that both HF and LF standalone modes are broken. For LF the tag is not being read, for HF - emulation goes with UID with all zeros.

Compiling as advised to enable HF standalone exclude -DWITH_ISO14443a_StandAlone

Emulating Ultralight EV1

I am trying to emulate an Ultralight EV1 (MF0UL1101D) tag with the PM3, latest commit on master.

I can dump the tag with hf mfu dump (the default password is used), which gives me a dump with 32 pages (128 bytes):

pm3 --> hf mfu dump
TYPE : MIFARE Ultralight EV1 48bytes (MF0UL1101)          
Reading tag memory...          
Error: Authentication Failed UL-EV1/NTAG          

*Special* block data:          

DataType| Data        |   | Ascii          
---------------------------------          
GetVer-1| 00 04 03 01 |   |           
GetVer-2| 01 00 0B 03 |   |           
TBD     | 00 00       |   |           
Tearing |    BD BD BD |   | ���          
Pack    |    00 00    |   |           
TBD     |          00 |   |           
Sig-1   | CE C0 E8 DD |   |           
Sig-2   | EB 5C 09 52 |   |     R          
Sig-3   | FD C9 8C 5A |   | �ɌZ          
Sig-4   | 28 59 3C 62 |   | (Y<b          
Sig-5   | B0 99 06 44 |   | ��D          
Sig-6   | 88 E7 51 C2 |   | �         
Sig-7   | 60 18 BA DB |   | `�         
Sig-8   | F1 BA F6 8B |   | �          

Block#  | Data        |lck| Ascii          
---------------------------------          
00/0x00 | 04 3C 80 30 |   | <�0          
01/0x01 | 9A DB 49 81 |   | ��          
02/0x02 | 89 48 00 00 |   | �H          
03/0x03 | 00 00 00 00 | 0 |           
04/0x04 | 23 EB B2 34 | 0 | #          
05/0x05 | 72 60 41 46 | 0 | r`AF          
06/0x06 | 48 74 08 08 | 0 |           
07/0x07 | 40 EC C3 35 | 0 | @5          
08/0x08 | 59 C8 53 B9 | 0 | Y�          
09/0x09 | 6D 6F 5E 89 | 0 | mo^�          
10/0x0A | 45 70 DC 86 | 0 | Ep܆          
11/0x0B | A4 42 DA CB | 0 | �B          
12/0x0C | 8C E8 B9 B3 | 0 | �蹳          
13/0x0D | 32 DD C5 C4 | 0 | 2         
14/0x0E | 36 E2 1D D5 | 0 | 6         
15/0x0F | 70 A8 AB 39 | 0 | p��9          
16/0x10 | 00 00 00 FF | 0 |           
17/0x11 | 00 05 00 00 | 0 |           
18/0x12 | 00 00 00 00 | 0 |           
19/0x13 | 00 00 00 00 | 0 |           
---------------------------------          
Dumped 32 pages, wrote 128 bytes to 043C809ADB4981.bin

I then use the dumptoemul-mfu script to convert this bin file to its plain ASCII representation and get the .eml file:

00040301
01000b03
fd00bdbd
bd000000
cec0e8dd
eb5c0952
fdc98c5a
28593c62
b0990644
88e751c2
6018badb
f1baf68b
043c8030
9adb4981
89480000
00000000
23ebb234
72604146
48740808
40ecc335
59c853b9
6d6f5e89
4570dc86
a442dacb
8ce8b9b3
32ddc5c4
36e21dd5
70a8ab39
000000ff
00050000
00000000
00000000

Unfortunately, running hf mfu eload u 043C809ADB4981.eml 32 followed by hf mfu sim t 2 u 043C809ADB4981 doesn't work properly:

  • the emulator does not work on the usual reader (card not recognized)
  • the NFC TagInfo application on my NFC-enabled phone doesn't recognize the card properly, but instead says the card is a "Mifare Ultralight X", with... 1232 bytes of memory, with 308 4-bytes-long pages

The actual card has 80 bytes of memory , with only 20 pages. My phone tries to enumerate all the 308 pages to retrieve the content of the memory and hang until I remove the card.

I guess metadatas are not properly understood by the emulator / specific commands are not implemented.

I also tried to only use the 20-pages-long dump (only the data), but I don't get a better result.

Any idea?

lf partially broken

Dear Chris,

I've faced the problem when lf search works well, however lf t55x detect and lf em4x em410xwrite make the device (RDV 2.0) to reset.

pm3 --> lf em4x em410xwrite 030070AB2A 1
Writing T55x7 tag with UID 0x030070ab2a (clock rate: 64)          
#db# Started writing T55x7 tag ...          
#db# Clock rate: 64          
pm3 --> 

Please could you check?
Thank you!

Compiling under Mac OSX #include <malloc.h> error

if i try to Compiling the standart iceman1001/proxmark3 reposity with homebrew under mac osx 10.10 the terminal tells me the following error:

cmdhfmfhard.c:33:10: fatal error: 'malloc.h' file not found

include < malloc.h >

     ^

1 error generated.
make[1]: *** [obj/cmdhfmfhard.o] Error 1
make: *** [client/all] Error 2

could you maybe help me to solve this problem?

lf sim does not work due to timing

when running your last build with your firmware simulating em4x does not work
when running main build with main firmware it works fine
when running main your build with main firmware (yep I know), it brings stranges numbers to the display and reader is stuck for a second

I assume its as you said the timing or something mixed up

homebrew does not compile on MacOS el capitan

HEAD Version
brew install --HEAD proxmark3
==> Installing proxmark3 from iceman1001/proxmark3
==> Tapping nitsky/stm32
Cloning into '/usr/local/Library/Taps/nitsky/homebrew-stm32'...
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 0), reused 5 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), done.
Checking connectivity... done.
Tapped 2 formulae (33 files, 24.2K)
==> Cloning https://github.com/iceman1001/proxmark3.git
Updating /Users/xxx/Library/Caches/Homebrew/proxmark3--git
==> Checking out branch master
==> make clean
==> make all
Last 15 lines from /Users/xxx/Library/Logs/Homebrew/proxmark3/02.make:
In file included from iso14443a.h:20:0,
from desfire_crypto.h:9,
from desfire_crypto.c:28:
../common/cmd.h:41:6: error: conflicting types for 'cmd_send'
bool cmd_send(uint32_t cmd, uint32_t arg0, uint32_t arg1, uint32_t arg2, void* data, size_t len);
^
In file included from ./util.h:18:0,
from ./string.h:16,
from desfire_crypto.h:4,
from desfire_crypto.c:28:
./apps.h:214:6: note: previous declaration of 'cmd_send' was here
bool cmd_send(uint32_t cmd, uint32_t arg0, uint32_t arg1, uint32_t arg2, void* data, size_t len);
^
make[1]: *** [obj/desfire_crypto.o] Error 1
make: *** [armsrc/all] Error 2

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/brew):
https://github.com/iceman1001/homebrew-proxmark3/issues

MASTER:
brew install proxmark3
==> Installing proxmark3 from iceman1001/proxmark3
==> Downloading https://github.com/iceman1001/proxmark3/archive/v1.6.0.tar.gz
==> Downloading from https://codeload.github.com/iceman1001/proxmark3/tar.gz/v1.6.0

################################################################## 100,0%

==> make clean
==> make all
Last 15 lines from /Users/xxx/Library/Logs/Homebrew/proxmark3/02.make:
gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED -c -o obj/cmdhf14a.o cmdhf14a.c
gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED -c -o obj/cmdhf14b.o cmdhf14b.c
gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED -c -o obj/cmdhf15.o cmdhf15.c
gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED -c -o obj/cmdhfepa.o cmdhfepa.c
gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED -c -o obj/cmdhflegic.o cmdhflegic.c
gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED -c -o obj/cmdhficlass.o cmdhficlass.c
gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED -c -o obj/cmdhfmf.o cmdhfmf.c
gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED -c -o obj/cmdhfmfu.o cmdhfmfu.c
gcc -std=c99 -O3 -mpopcnt -march=native -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall -g -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED -c -o obj/cmdhfmfhard.o cmdhfmfhard.c
cmdhfmfhard.c:33:10: fatal error: 'malloc.h' file not found

include <malloc.h>

     ^

1 error generated.
make[1]: *** [obj/cmdhfmfhard.o] Error 1
make: *** [client/all] Error 2

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/brew):
https://github.com/iceman1001/homebrew-proxmark3/issues

Compiling for Mac OS X El Capitan

I tried compiling for mac - I installed all dependencies, gcc48, readline and went through many of the known issues, had to place malloc.h in by hand.

I also could not get rid of the errors in ui.c regarding undefined readline references:

**

etopt.o obj/tea.o obj/prng.o obj/radixsort.o obj/bucketsort.o guidummy.o -L/opt/local/lib -lreadline -lpthread -lm ../liblua/liblua.a -o proxmark3
Undefined symbols for architecture x86_64:
"_rl_copy_text", referenced from:
_PrintAndLog in ui.o
"_rl_readline_state", referenced from:
_PrintAndLog in ui.o
"_rl_replace_line", referenced from:
_PrintAndLog in ui.o
"_rl_restore_prompt", referenced from:
_PrintAndLog in ui.o
"_rl_save_prompt", referenced from:
_PrintAndLog in ui.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[1]: *** [proxmark3] Error 1
make: * [client/all] Error 2

no matter what I tried - so I ended up commenting them out to get things running.

Let me know if anyone else runs into these and has a better fix?

usbcommand strangeness

When trying to edit some minor flows in hardnested, I ran into this.

http://pastebin.com/SwUA80uM

Basically the usbcommandstructure is not kept.

c.arg[0] is zero (ok) since block and key will be zero
c.arg[1] should be 0x124 (since targetblock is 36 (0x24) and keytype is B
c.arg[2] should be flags 0x1 (init, not slow, not field off)

LF NexWatch

Only a demod exists, with raw id.
Still issues with parity checks, checksums TBD

RATS / iso_select_card

Move the RATS part from iso_select_card, since it messes up things for some clone tags

valgrind / gdb cmdhfmfhard.c

With @matrix latest changes, I started to get some crashes. Thanks for the tip on using valgrind.
Out of the box it doesn't work because the pm3 client is compiled with -o3. Change that to -o1 and you can use valgrind better. Hook it up with GDB, and when running the 'hf mf hardnested' command it now breaks as seen below. My first guess is that the comment made by @piwi,
"// use logarithms to avoid overflow with huge factorials (double type can only hold 170!)"

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 5740]
p_hypergeometric (N=N@entry=256, K=K@entry=32, n=n@entry=4, k=k@entry=0) at cmdhfmfhard.c:264
264         return exp(log_result);
(gdb) 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.