
pySimReader is a Python-based utility designed for managing GSM SIM cards, offering functionalities like phonebook and SMS operations, SIM information retrieval, and PIN management. Originally developed in 2007, it remains relevant for security researchers and system administrators working with programmable SIM cards or legacy systems. This article explores its features, use cases, and modern alternatives.
Overview of pySimReader
pySimReader is a cross-platform tool compatible with Windows, Linux, and macOS. It supports basic SIM card operations such as reading ICCID, IMSI, and MSISDN, as well as editing phonebook entries and SMS messages. The tool requires a PC/SC-compliant reader (e.g., ACS ACR 38t) and a GSM SIM card. Its source code is available under GNU GPL, while hardware designs use CC BY-SA licensing.
The software is particularly useful for testing SIM card security, provisioning private networks, or analyzing legacy systems. While the original version (v1.4) was released in 2007, modified forks like NCC Group’s 2018 update added features such as raw SMS PDU writing and APDU debugging.
Key Features and Requirements
pySimReader provides several functionalities tailored for GSM SIM management:
- Phonebook/SMS Management: Create, edit, delete, backup, and restore contacts and messages.
- SIM Information: Retrieve ICCID, IMSI, SMSP, and MSISDN.
- PIN Operations: Change, enable, or disable PIN codes.
To use pySimReader, the following dependencies are required:
- Windows 98+ or Linux/macOS with Python 2.5+/3.x.
- Libraries:
pyscard
,wxPython
,pySerial
, andpcsc-lite
(Linux).
Modern Alternatives and Usage
While pySimReader remains functional, modern alternatives like Osmocom pySIM offer broader compatibility with 2G-5G SIMs/USIMs. Osmocom’s pySIM-shell provides an interactive CLI for advanced SIM exploration, including IMSI and Ki programming.
Example usage of Osmocom pySIM-shell:
pySim-shell.py --pcsc # Interactive CLI for SIM exploration
For those needing debugging capabilities, NCC Group’s modified version of pySimReader includes additional logging features:
python pySimReader.py -d # Debug mode (NCC version)
Relevance to Security Professionals
pySimReader and its derivatives are valuable for testing SIM card security, analyzing legacy systems, or provisioning private networks. Red teams can use it to assess SIM-based authentication, while blue teams may leverage it for forensic analysis of compromised SIM cards.
Security considerations include ensuring proper hardware isolation when testing live SIM cards and verifying compatibility with target systems. Since pySimReader interacts with low-level SIM functions, misuse could lead to SIM lockouts or data loss.
Conclusion
pySimReader remains a useful tool for GSM SIM management, particularly in legacy environments. While newer alternatives like Osmocom pySIM offer expanded features, pySimReader’s simplicity and specialized functions make it relevant for specific use cases. Security professionals should evaluate their needs before choosing between the original tool, modified forks, or modern replacements.
References
- “pySimReader,” SourceForge, 2007. [Online]. Available: https://simreader.sourceforge.net/.
- “pySIM (GitHub Archive),” GitHub, 2021. [Online]. Available: https://github.com/twhiteman/pySIM.
- “NCC Group Modifications to pySimReader,” NCC Group, 2018. [Online]. Available: https://www.nccgroup.com/us/research-blog/pysimreader/.
- “Osmocom pySIM Wiki,” Osmocom. [Online]. Available: https://osmocom.org/projects/pysim/wiki.
- “Ladyada pySimReader Guide,” Ladyada. [Online]. Available: https://www.ladyada.net/make/simreader/use.html.