Professional Documents
Culture Documents
Design Considerations
4.1 AT Commands
modem control (Hayes Microsystems 2005). A standard for GSM phones was developed
which includes commands to access information such as phone book entries, call logs and
SMS messages.
communicating with a mobile phone, the phone’s internal logic receives and parses the
control (Durda 2004). We can use the commands described in most AT commands
user-friendly interface that hides these AT commands from the users. The original AT
command set consisted of commands for dialing, answering and controlling the ways in
which data is transferred, the ETSI TS 27.007 and TS 27.005 specifications add the
ability to access the phonebook, call logs and SMS messages stored in a GSM phone
(ETSI 2004b, ETSI 2005). The AT commands specified in the TS 27.007 and TS 27.005
phones and SIM cards (ETSI 2004b, ETSI 2005). Whether these additional commands
are implemented in the phone’s internal modem or in software is up to the manufacturer,
but at some point these commands will cause the phone’s memory to be accessed.
protocol. Over a serial connection, the client sends a command followed by a carriage
return character, and optionally with a new line character, and receives a formatted
this subchapter.
The command AT+CGSN is a request for the phone’s IMEI. The phone also
echoes the command which was sent to it; this is not shown in any of the examples in this
Chapter. In all of the figures in this Chapter, the symbol ‘\n’ refers to a new line
Figure 9. AT command
Most data obtainable via AT commands will require the user to be verified to the
SIM card and / or phone. The figure below shows the GSM device denying access to
information as the SIM PIN has not been entered. Note that all of the testing procedures
were done using a GSM device connected to a PC via data cable using HyperTerminal.
Figure 10. AT command
following are present in GSM phones, which are: manufacturer, model, and version
Mobile Subscriber Identity(IMSI), phone book entries, call log entries, sent and received
The letter <n> used in a command syntax is the setting value typed in as a
Setting values for the commands are presented below under the description of the
command. When you select a setting value with an AT command, the setting is
valid until you change it. The functionality of a particular command form is
described on the right side of the syntax, and after that follows the command
response.
When you want to set or display a value for a setting, or you want to know
the valid values, type in AT+ the command string followed by “=n”, or “=?” and
press <ENTER>.
3.) AT+__=? Displays all the setting values that can be used with the command.
Acceptable extraction of data from the SIM card can be accomplished in two
ways. Directly analyzing the contents of the SIM card is outside of the scope of this
The first way is through a smart card reader, which are cheap and easy to obtain.
The SIM card is accessed and controlled by commands specified in the ETSI ‘TS 31.101’
and ‘TS 51.011’ standards (ETSI 2000, 2004). A terminal program such as Microsoft
HyperTerminal can be used to send commands to the SIM card. A number of software
applications are also available which perform these tasks, such as Sim Manager (TX
Another method of accessing the SIM card is through the mobile phone. GSM
phones conform to the ETSI ‘TS 27.007’ standard, which specifies a command set. This
set includes a command which allows a SIM card command to be embedded, and passed
to the SIM card. Responses from the SIM card are passed back in a similar manner. This
is effectively identical to directly accessing the SIM card. This command is an optional
(ETSI 2004, pp. 88 - 90). If this method were available on every mobile phone, it would
reduce the difficulty in analysis, as the SIM card would not need to be removed and
analyzed separately.
The HD44780U dot-matrix liquid crystal display controller and driver LSI
drive a dot-matrix liquid crystal display under the control of a 4- or 8-bit microprocessor.
Since all the functions such as display RAM, character generator, and liquid crystal
driver, required for driving a dot-matrix liquid crystal display are internally provided on
one chip, a minimal system can be interfaced with this controller/driver. A single
HD44780U can display up to one 8-character line or two 8-character lines. The
HD44780U has pin function compatibility with the HD44780S which allows the user to
easily replace an LCD-II with an HD44780U. The HD44780U character generator ROM
is extended to generate 208 5 × 8 dot character fonts and 32 5 × 10 dot character fonts for
a total of 240 different character fonts. The low power supply (2.7V to 5.5V) of the
HD44780U is suitable for any portable battery-driven product requiring low power
dissipation.
4.4. PIC16F877 microcontroller
packs Microchip's powerful PIC® architecture into an 40- or 44-pin package and is
PIC16F877 features 256 bytes of EEPROM data memory, self programming, an ICD, 8
3-wire Serial Peripheral Interface (SPI™) or the 2-wire Inter-Integrated Circuit (I²C™)
bus and a Universal Asynchronous Receiver Transmitter (USART). All of these features
make it ideal for more advanced level A/D applications in automotive, industrial,
instruction set, PicBasic Pro which features an enhanced instruction set compatible with
the BASIC Stamp 2 and the CCS C Compiler which gives developers the capability to
quickly produce very efficient code from an easily maintainable high level language.
Windows®, Linux® and Mac OS X. The HI-TECH PICC-Lite compiler is the same in
every respect as the full HI-TECH PICC compiler, except that it has support for only a
limited subset of processors, there are some limitations on the amount of memory that
can be used and source code for the standard libraries is not provided. The supported
processors and their limitations (if any) are shown below. Due to program memory
constraints, support for printing floating-point and long data types via printf family
4.6. JTAG
JTAG (Joint Test Action Group) is a widely used standard developed by the IEEE
in the early 1990s. The JTAG standard specifies an interface and commands which can
be used for testing and debugging of the hardware components in an electronic device.
test of the input and output pins connected to that component. JTAG can test the correct
functioning of an individual component, and the correct interconnections and interactions
between components. Official JTAG cables for mobile phones are not publicly available,
memory. It is typically accessed through the memory access controller. If the JTAG can
test the memory controller, then the memory it manages will be accessible.
The JTAG standard requires a four pin connection onto the device circuit board
(an optional fifth pin can be added, to provide a system reset function). JTAG
connections are generally different for every phone model. The pins can be in arbitrary
positions on the phone, of different sizes, and unlabelled. These examples show that one
JTAG cable would most likely not be able to be used with more than a few phones
(McCarthy, 2005).
use in infrared devices. OBEX has been incorporated into the specification for Bluetooth
devices, and can also be used over cable connections. One of the most common uses of
OBEX is for remote file browsing, for example, of a mobile phone’s media gallery. Only
a subset of the phone’s entire file system will be made available, and will provide access
to items such as images, audio and video recordings, ring tones and downloaded
applications. It allows the synchronization of items such as calendar and phone book
functions in an OBEX session are ‘Get’, ‘Put’ and ‘SetPath’. The Get operation allows
access to an object which is stored on a device. Put allows an object to be copied to the
remote device. SetPath enables the folder system on the device to be traversed. Here’s an
command specific bytes, and optional fields called headers. This structure is shown in the
figure below. Each OBEX command has a unique structure. For example, in addition to
the opcode, packet length and optional headers, a connect request packet must contain
information such as the OBEX version number and the maximum packet length which
Most Nokia phones have F-Bus and M-Bus connections that can be used to
connect a phone to a PC or in our case a microcontroller. The connection can be used for
controlling just about all functions of the phone, as well as uploading new firmware etc.
Also this bus will allow us to send and receive SMS messages.
FBUS will generally allow the access of basic phone information such as
phonebook entries, call logs, SMS messages and calendar entries. In addition to this,
limited file system access is accessible on modern Nokia phones which support OBEX;
however the OBEX communication must be encapsulated within FBUS communication,
The MBUS method uses only a single pin. It is a half-duplex method used also in
older Nokia phones. With MBUS it is possible to interface with almost all Nokia mobile
phones for service and adjustment purposes. The FBUS is a newer solution and offers
high-speed full-duplex communications link between the phone and the computer. The
service and adjustment operations, which are traditionally made over MBUS, are
The structure of an FBUS packet is shown in the figure below. Every FBUS
packet over a cable connection begins with the frame ID 0x1E. The phone and PC are
both given identifiers, which constitute the source and destination bytes. The ‘frames to
go’ byte indicates whether the current response consists of more frames. The body length
byte is the length of the packet body, and the frames to go, sequence number and padding
byte, if present. Sequence numbers in an FBUS session increment from 0x40 to 0x48 and
then loop back to 0x40, with the exception that the first sequence number is 0x60.
Whenever a frame is sent in an FBUS session, the receiving party must send an
acknowledgement frame back to the sender. Acknowledgement frames have the same
structure as normal frames, with the exception that there is no frame body, and the frames
to go and sequence number bytes are replaced with the message type and the least
significant four bytes of the sequence number of the frame being acknowledged,
respectively.
Figure 19. DLR-3P cable for FBUS communication
The MAX 3222 has two identical RS232 level shifters. All they do is convert
5V/0V to -13V/+13V. It can handle up to 2 micros on separate serial ports. Only one is
needed for the bootloader. As a alternative, a MAX232 or SIPEX232 can be used instead.
For bit bashing the serial, a debugging channel for sending data or messages to and from
Power Supply
Durda F 2004 ‘The AT Command Set Reference’, online accessed 3rd September 2006,
http://nemesis.lonestar.org/reference/telecom/modems/at/history.html.
Insideout Forensics 2005 SIMCon – SIM Content Controller, online accessed 4th April
2005, http://www.simcon.no/.