SIM info - Windows Mobile Development and Hacking General

Hey ppl,
Im a new kid in programming for pocket PCs.. I use Visual Basic .net 2003.
Does a SIM contain any unique id..? Like IMEI for devices, does SIM card have any..? if yes , can u pls provide me an example solution file to read it..?
I read in msdn for reading SIM' phone number and service provider.. But the download sample was like an installation msi file as usual and after downloading that, it gave me a solution project which i already did..I tink something rong wit my PC..
If u cant make the example solution, can u atleast try opening this download sample in the link and send me the VB part alone zipped pls....?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/netcfphoneapi.asp

Carty: I'm not sure if the SIM contains a unique identifier record, but it will generally hold the phone's telephone number of course. That should be fairly unique!
There is code somewhere on the board I think for reading sim records as an alternative way of recovering SIM SMSs. I imagine the same idea could be used to check for unique ID. But although possible, I don't know if it'd be more helpful then the easy to read telephone number.
V

String is not set
Vijay tanx for yr reply....
I finally made out tat sample to give me the correct project but now the simnumber is not showing up..
Actually in the form load event
'Blah = newSim.GetServiceProvider()
newSim.GetPhoneNumber()
the above was given and i added the line
msgbox(newSim.GetServiceProvider()) and it showed me the service provider
but the same i cldn do for
msgbox(newSim.Getphonenumber())
as it gives the error: Value type netcf.phoneaddress cannot be set to string. in the debug window
The code for getting those numbers are riten on different class called sms.vb
can u pls help me out wit that..
will this line
newSim.GetPhoneNumber()
alone, wld it notify with a number? im nt gettig any..can u download tat sample and test it? Pls help me..?

I'm afraid I have no experience with .net, but this is something that confused me for a long time. If there's no telephone number registered in the SIM, it won't collect it.
Read this:
http://www.wivit.com/products/FAQ_SSS.shtm
V

Every sim card has a unique ID, its used to identify the sim card on the network and is used when the phone is in use, because as you say not all sims have phone numbers. This would be ideal for your project, which by the way I would be very interested in. The bad news is that I have never done any programming for .Net CF so I don't know how you would accomplish that.
Hope I have been of some help.

Tats wot i need
SIM should contain a unique ID as argon says... Its the way the operator recognizes the SIM..
Anyone frm anywer cld pls help me out to read that unique ID from SIM card with VB.net.. I have no knowledge in C#
Lookin for replies...Tanx in advance..

Hi
Cant help you with the programming but the sim will not contain a phone number but will contain 2 separate numbers.
IMSI number, International Mobile Subscriber Identifier, unique number up to 15 digits long. the first few digits identify the country of issue and the next the network the fianal digits are the serial number for the network issuing the sim. When the phone makes a call to the BTS this data is sent using the COMP128 algorithm. This is vital as the both the Ki (personal encryption key) and the IMSI are used as a pair to authenticate the sim on the BTS.
It is believed that COMP128 was hacked some years ago but the industry has so far kept quiet about this and has not replaced the encryption system due to cost. But basically anyone with access to the hacked COMP128 algorithm can scan the IMSI and Ki and clone your sim.
Sorry for the Ramble, but the point here is there may be a breach of licence and copywrite if you attempt to read these details from the sim. As it could be argued that you were attempting to "clone" sim cards, which in most countries is a criminal offence.
Also beware about assisting people on this forum who are seeking help on this matter as there are a few virus writers who are rumoured to be compiling a worm like virus to read this detail from sims on windows mobile platforms and use these IMSI Ki pairs to commit major telecoms fraud. Basically they send the worm out there and it harvests the data and sends it back to them.
With this data they can create duplicates of your sim card and install these in GSM gws. These are then used to call expensive international numbers in large production enviroments using 100's of sims running 24 hours per day. These calls are them sold to large telecoms companies netting these people $10,000's per day.
Be careful guys.
Regards
Charlie

I din know that!!
Hey charlie, tanx for yr reply.. I did get something i never knew..

Related

Data Call between two XDA's

Hi
I am new to this form.
I had a look at the tsril.zip example as it seems from this forum that to make/receive a data call the ril is the only option. Unfortunately the documentation for ril is nonexistent and I want to ask if someone has done an example of a client/server data call, data transfer between to XDA's.
Thanks in advance.
Anton
It all depends on what type of data you want to transfer. I have never used RIL so I don't know the advantages of it, over the normal programming interface. I say normal, not thinking there is anything wrong with RIL but the little I do know is that RIL is operating system level and is normally hidden from the application programmer. There must be times when RIL must be used if Microsoft forgot functions in the normal APIs.
However I would say that for a data link between 2 devices then RAS seems the way forward. One device would be the Server and the other the Client. I have only ever programmed RAS from the client side, making a Telnet link to an already running server.
I just had a look at the help on Embedded Visual C++ 3.0 and under 'Creating a TCP Stream Socket Application' it explains the server side and then links to the client side. Have a read there.
RAS is not an option as it is a server consept, which I think does not even exist as a service on the desktop windows os let alone on a Pocket PC.
What I am looking for is something similar that you would be able to do with a landline modem or a gsm modem connected to a serial port of a pc (even a usb modem) which is to send AT commands to make/accept a call and then to make use of the serial port as if it is an io stream. This is possible on windows, linux using either c#, c++ or java. I can even do this with an embedded gsm module like the siemens TC45 java module.
What I can not understand is why Microsoft and the XDA suppliers (I am using a Qtex running Pocket PC 2002) is making it so difficult to make/answer a data call and let you run your own protocol over the connected stream.
RAS (Remote Access Services) is built into all Windows Operating Systems, including Windows CE. Did you look up the help example I pointed to ? What you do with RAS on an application level is for you to code but the connection itself is handled by the operating system.
As to making a connection similer to a modem and using AT commands. Then no you can't use AT commands directly, but you don't need to. To get that type of connection you need to use TAPI. Once Tapi has made a DATA_MODEM type connection, you use the TAPI callback connect event to then ask for a file handle that you can use with the normal WriteFile and ReadFile commands.
I already have something on this forum about that see:-
http://forum.xda-developers.com/viewtopic.php?p=7857&highlight=#7857
The problem is not so much making the data call but it is accepting/answering the data call that I can not get working on the XDA
Not sure if this is your problem, but in Australia they have a seperate "data" phone number for the same SIM. If yo call one number you get voice, if you call another number you get data on the same sim. Not sure if this may be effecting you.
I just looked into all this ras stuff a bit deeper, and yes I think I may of been talking rubbish. Although RAS does exist in PPC2002, it can't see any functions that allow the device to answer the line. I can see that PPC2003 has a Ras Server and RasIOControl that looks like the answer there.
Also looking into Tapi, I can't see how you answer a data call using that.
So I now understand your problem. It seems PPC is made as a client device.
Is GPRS the answer ? With that the link is always present and then you can use the built in Ras functions on seperate devices. Since you only pay for data actually sent then would it matter if the network link was always present ?
I have only worked out Tapi and Ras from the client side so I have never had this problem, but I agree it is an interesting one. I will have a bow out of this thread for a bit and see if anybody else knows how to Answer a Call.
Thanks for trying.
GPRS is also not the answer as you need a server in between that both XDA's can connect too and use as a router as the XDA's do not get fixed IP adresses but actually a NAT adres from the APN so you can not connect directly between the two.
Now that's an interesting thought, how about using some free web space to act as a pigion hole for your data ?
Believer: A seperate number? How do you know this, and what would the number be?
I can actually make two XDA connecting to each other using TCP. The trick is that I have one client always connect to a server to register it IP address with an ID. Then the caller send a query to the server to look up the callee's IP address.
In this way, accept() and connect() work fine.
I am using AT&T network and not sure about if other networks behave the same.
I wrote two application using TAPI. One is ModemDial and the other is ModemWatch, if I make a voice call the ModemDial dials the number successfully and ModemWatch reports that an incoming call exist. But when I change the behavior of call to DATAMODEM, the ModemWatch couldn't track any incoming call.
Is there any one, had some experience with pick a call for DataModem?
Best regards,
A. Riazi
riazi said:
I wrote two application using TAPI. One is ModemDial and the other is ModemWatch, if I make a voice call the ModemDial dials the number successfully and ModemWatch reports that an incoming call exist. But when I change the behavior of call to DATAMODEM, the ModemWatch couldn't track any incoming call.
Is there any one, had some experience with pick a call for DataModem?
Best regards,
A. Riazi
Click to expand...
Click to collapse
In your ModemWatch application make sure you are calling lineOpen with dwPrivileges (the 7th parameter, 1 based) equal to LINECALLPRIVILEGE_OWNER and dwMediaModes (the 8th parameter) equal to LINEMEDIAMODE_DATAMODEM.
If you're able to answer a voice call successfully, making these changes to the ModemWatch application should allow you to answer a data call.

Change IMEI No in MS Win 2003 without changing Radio stack ?

Could someone code an IMEI modifying program that modifies the IMEI in Windows 2003 ?
For instance: I currently have a "Windows MAC Address Modifying Utility" that enables me to modify the MAC address in Windows 2000(on the fly - without a reboot) so each time I connect to the Net, the ISP sees a different MAC connection(I am a security nut!)
As I understand it, the IMEI no. is stored in the Radio Stack, but it is eventually passed on to Windows as the connection/call is made. It would seem logical that this IMEI is stored somewhere in Windows(like the MAC Address) & hence should NOT be too hard to modify.
I am a C/C++ coder but I haven't done any coding for the XDA as yet.
I have an XDA mini.
BTW: For all those people that keep posting that changing the IMEI is illegal, my mini is NOT stolen & I do not live in a country where changing the IMEI is illegal(I will let you figure out where that is
I want to change the IMEI easily, so each time I purchase a new Pre-Paid, it will show up as a New connection & NOT a reused phone !!
Again, nothing illegal... I just live under a dictatorship government
!
Regards,
John
Re: Change IMEI No in MS Win 2003 without changing Radio sta
asdzxc said:
As I understand it, the IMEI no. is stored in the Radio Stack, but it is eventually passed on to Windows as the connection/call is made. It would seem logical that this IMEI is stored somewhere in Windows(like the MAC Address) & hence should NOT be too hard to modify.
Click to expand...
Click to collapse
You can easily change the IMEI number that is seen by Windows by intercepting the AT-commands coming to GSM stack. But IMEI transmitted over radio will be the original one. Windows knows nothing about GSM signals, encoding, etc. Everything is processed by the specialized CPU that runs its own OS, has its own ROM and RAM. It communicates with windows over the internal COM-port like a normal modem.
The only way to modify IMEI is to patch GSM ROM. There are 2 methods - flash the security block or patch the code that reads IMEI from it.
Re: Change IMEI No in MS Win 2003 without changing Radio sta
mamaich said:
The only way to modify IMEI is to patch GSM ROM. There are 2 methods - flash the security block or patch the code that reads IMEI from it.
Click to expand...
Click to collapse
Hi mamaich,
thnx for that prompt reply
As I understand it(plz correct me if I am wrong) is that "XDAmanipulator" patches the code that reads the IMEI.
In the 'flashing the security block', is that what is commonly done with those hardware type flashers like for the Nokia et al mobile phones.
I read on another forum that the hardware flashes just set the IMEI of the XDA to 000..
Sorry if I am rambling on, but is there a hardware flasher(or software) that enables you to set the IMEI in the security block ?(for the MINI or XDAII)
I know in the latest NOKIA's, they have made the eprom chips 'write once' so the IMEI cannot be flashed!
Any help is greatly appreciated!
Regards,
John
Re: Change IMEI No in MS Win 2003 without changing Radio sta
I know nothing on changing the imei in XDAs and was never interested in this. Anyway changing the IMEI for security reason is useless, operator uses IMSI to identify you. The only reason for changing IMEI is hiding the stolen phone or overcoming some limitations made by operator. As I work in a cellular industry, I think that both is illegal.
Re: Change IMEI No in MS Win 2003 without changing Radio sta
mamaich said:
Anyway changing the IMEI for security reason is useless, operator uses IMSI to identify you. The only reason for changing IMEI is hiding the stolen phone or overcoming some limitations made by operator.
Click to expand...
Click to collapse
Sorry mamaich, but if you work in the telco industry then you don't seem to know much...
IMSI is used to identify the user on the network, but the IMSI is matched against the IMEI ... usually to stop cloning of sims .. but also to track users...
By changing the sim card(IMSI) the network can still identify you by the mobile in which the sim card is inserted(IMEI).
To conclude, changing the IMEI is NOT useless for security. You just don't seem to understand how the GSM network works or you have never been inside the section that relates to network monitoring...
Below is an explanation that may help you in your day job.
BTW: I thought anything was the go in Russia
For your educational learning:
#########################
1)
IMEI (International Mobile Equipment Identity):
is a unique 15-digit code used to identify an individual GSM mobile station to a GSM network.
The IMEI is stored in the Equipment Identity Register (EIR).
2)
International Mobile Subscriber Identity (IMSI) Number:
The IMSI is a unique non-dialable number allocated to each mobile subscriber in the GSM system that identifies the subscriber and his or her subscription within the GSM network. The IMSI resides in the Subscriber Identity Module (SIM), which is transportable across Mobile Station Equipment (MSE). The IMSI is made up of three parts (1) the mobile country code (MCC) consisting of three digits, (2) the Mobile Network Code (MNC) consisting of two digits, and (3) the Mobile Subscriber Identity Number (MSIN) with up to 10 digits.
#########################
Regards,
John
Re: Change IMEI No in MS Win 2003 without changing Radio sta
in russia most operators don't read IMEI of phones. They only check IMEIs on government requests.
Re: Change IMEI No in MS Win 2003 without changing Radio sta
mamaich said:
in russia most operators don't read IMEI of phones. They only check IMEIs on government requests.
Click to expand...
Click to collapse
Where I am any person in the support section has direct access to look up a person's IMEI.
It is literally 2 clicks of the mouse in the user's admin section.
As any employee here can look it up, Gov & Law Enforcement don't even have to request a warrant to get that information.... as it is readily available on request...
... again, as you can easily change an IMEI on a normal mobile phone & as the eprom's are NOT 'write once' on the XDA Mini or II, surely there must be someway to easily change the IMEI no ?????
.... I would even pay for a hardware flasher.... if one exists ???
Regards
John
can we now change IMEI? is there any programs?
as far as i know then there were a program which could do it on xda1's with some radiostacks but not on xda2
also the gsm part of the xda's are not connected to windows ce
it's automaticly which is why it needs it's own firmware which is the radiostack so you cant really do a imei mask like you can with mac address
also you dont really change the mac address using those programs you just software mask it the mac is in hardware and cant be changed permently
Can JTAG do this imei changing?
Rudegar said:
as far as i know then there were a program which could do it on xda1's with some radiostacks but not on xda2
also the gsm part of the xda's are not connected to windows ce
it's automaticly which is why it needs it's own firmware which is the radiostack so you cant really do a imei mask like you can with mac address
also you dont really change the mac address using those programs you just software mask it the mac is in hardware and cant be changed permently
Click to expand...
Click to collapse
could you walked me thru on this?? really want to know how remap/change my imei..

Any ideas how to get ICCID?

Does anyone have any experience of obtaining the ICCID on a windows mobile device?
The ICCID is the number printed on the actual SIM (It is also stored on the SIM), it is not the IMSI number I am after which is also stored on the SIM.
There is software about to find this information if you have the SIM in a SIM card reader on a PC but I want to be able to gather that info on the actual device.
It is for asset tracking purpose of SIM's we use. As we use lots of them in many devices.
Any help would be appreciated. Either if you can point me in the direction of an API that could help or some Visual Studio code that we could call to obtain the number.
Richard

How to determine network type in software?

Wondering if anyone knows how to determine via WinMo C++ the cellular network type (GSM vs CDMA, 3G vs EVDO, etc etc) of the host device?
For example: Let's say I want to make a program that sends other people contact info, so I don't have to switch between messaging and phone book to make sure I have the number and name spelling correct... so instead I automate it. CDMA and GSM both have contacts stored in the operating system, but GSM/3G have contacts stored in the SIM card as well, and so I'd want to detect that the phone is a GSM device and not a CDMA device... that way I give my users access to contacts in the SIM.
Any ideas, besides trying to elicit a fault or error for functions that aren't yet implemented in CDMA versions of WinMo? Is there a function that you specifically call that will return "GSM", "CDMA", etc?
I don't really care about the version of WinMo... if anyone has an idea for one version, there are probably solutions that are similar for the others.

Hosting Call Conferencing in a HTC mobile device on any platform

I have an interesting (cum challenging) assignment.
A client has asked me to Host call conferencing from a mobile phone. He has provided me complete freedom to choose any Mobile Device & any programming platform available on this planet to accomplish his task.
Basically what he needs is the ability to Host conference call from a mobile device for upto 40 simultaneous participants (I know it sounds insane for a mobile device, but do I have any choice if his requirements clearly spell out this number).
So, basically the client wants to create a group of upto say 40 participants, and whenever he dials the group, all participants are automatically & simultaneously added to the conference by dialing all their numbers automatically. Also, if his cell receives a call, and he does not pick it up for some reason, the incoming call again should be conferenced to the group.
All the participant lines should be working, and disconnected automatically when the parent line disconnects.
Firstly, I am not sure whether any mobile device on this Mortal Earth supports such conferencing this day. Secondly, if anyone does, most probably, I would need to use the native API for developing an application for it in my opinion.
I am asking this question at all major Hardware/Software manufacturers. Is there any such mobile device available that can handle a simultaneous number of such participants? (Remember, the mobile device would be Hosting the conference, not a participant of it). 5-6 way conferencing can be supported on any Nokia smartphone. I read somewhere BlackBerry can support many, but the exact upper ceiling was not mentioned?
Related to HTC, is there a HTC device that can support this requirement? If yes, does HTC API provides features to accomplish this task?? Also, what would be the most appropriate Software platform to code such an application in, JME, Native (in C/C++) or anything else??
Well, apart from the device, you'd seek if any operator support a conference call with 40 participants.
40 concurrent participants is a big number, even big for some "conferencing" solutions.
That was the first question I asked my client. All he said was not to worry about that. That was his headache.
The only thing I need to see is that the if the requirements can be satisfied using any combination of Device/Software platform??
Few thoughts. First, if I remember correctly, a GSM network supports only 8 channels (calls) per cell at given cell and there are usually 2-3 cells available, but one channel is probably reserved for emergencies or smth, so You'd get let's say max 20 calls limitation already there. If he says it's his headache, well... It seems like it's already Your headache too. I don't know about 3G, but 3G isn't always available everywhere anyway.
Wouldn't it be easier to put up a server with direct line to operator and host the conference via server/software, dialing to a service number dedicated to that server or smth like that? I am sure You are not the first one with such needs and there should already be some ready-made solutions for that situation.
Just thoughts to consider.

Categories

Resources