python libraires and command line tools for SIM/UICC/USIM/ISIM card analysis and programming. https://osmocom.org/projects/pysim
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Sylvain Munaut 1f81cbf1f0 ccc: Fix SMSP generation in CCC tool as well 9 years ago
pySim cards: sysmocom SysmoSIM-GR2 support added to cards 9 years ago
.gitignore Add README, COPYING, .gitignor 13 years ago
COPYING Add README, COPYING, .gitignor 13 years ago
README README: Mention the necessary wait_for_card 12 years ago
ccc-fix.py 27c3: Add a ccc-fix script to correct bad SMSP file ... 9 years ago
ccc-gen.py ccc: Fix SMSP generation in CCC tool as well 9 years ago
ccc-prog.py Import of the programming tool 9 years ago
ccc.py Initial add of 27C3 HLR management tools 9 years ago
pySim-prog.py Implement setting of EF.ACC file in GrcardSim and _MagicSimBase 10 years ago
pySim-read.py pySim-read: MISDN is not mandatory 10 years ago

README

This utility allows to :

* Program customizable SIMs. Two modes are possible:

- one where you specify every parameter manually :

./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -i <IMSI> -s <ICCID>


- one where they are generated from some minimal set :

./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -z <random_string_of_choice> -j <card_num>

With <random_string_of_choice> and <card_num>, the soft will generate
'predictable' IMSI and ICCID, so make sure you choose them so as not to
conflict with anyone. (for eg. your name as <random_string_of_choice> and
0 1 2 ... for <card num>).

You also need to enter some parameters to select the device :
-t TYPE : type of card (supersim, magicsim, fakemagicsim or try 'auto')
-d DEV : Serial port device (default /dev/ttyUSB0)
-b BAUD : Baudrate (default 9600)

* Interact with SIMs from a python interactive shell (ipython for eg :)

from pySim.transport.serial import SerialSimLink
from pySim.commands import SimCardCommands

sl = SerialSimLink(device='/dev/ttyUSB0', baudrate=9600)
sc = SimCardCommands(sl)

sl.wait_for_card()

# Print IMSI
print sc.read_binary(['3f00', '7f20', '6f07'])

# Run A3/A8
print sc.run_gsm('00112233445566778899aabbccddeeff')