Need help reverse engineering Windows CE device serial communications - Windows Mobile

OK we have run into some roadblocks on getting an older Windows CE machine back into service - no longer supported by manufacturer. We can read I2C traffic going to data card used to store logs and cycles for machine but cannot decypher all of data. Started looking at decompiling .exe but some of files we think we need to see COM1 communications are .DLL in ROM. Anyone good at breaking this stuff down?

Related

what needed to program??

Hello,
i have visual c# express, is there any chance to get a template for mobile development? or any other good ide without downloading 200 single files to get embedded visual c++ 4.0 working?
i mean something simple like visual c# full version?
i want to start programming but i dont get it, because no right ide is out there only this ms ****
got it worked,downloaded evc++4.0, dont like it
im more into assembler/basic progrmaming languages
is it possbile to use assembler for programming? something like nasm to the desktop pc world?
If you want to do assembly, use evc to start you off then put assemble into that. I used to do this on the desktop (pc) all the time when I was writing a program to controll some hardware over a parallel port. I see in the evc4 documentation some info on inline assembly so it should be fine there (its part of the c++ language to allow this).
What is it you need that low level for? To do an entire project that way must be very hard.
thanks for the info
i only asked for imformation, later i want to write my own bootloader,l simple kernel,like i did for pc, maybe getting more into the low level programming, which i like more than the high level stuff
is there no basic language for windows mobile that allows you to create easily applications, for free
sometimes i dont understand the developers, doing some weird stuff like evc++ where you need so much sdk/extra stuff only to develop, why not packing everything into a basic language and give this language all the apis which are needed
well thats something i think should be more supportet :lol:
Confused
I thought of starting it myself. I'm not very into "Visual" products, I'm a C++ to Java converted person More of a Java person. Anyway, was trying to step my foot into this realm and I've found a few SDK that can be downloaded and use, what should I start first? There are several choices that I've for from M$
1. Windows Mobile 5.0 SDK for Pocket PC Genuine Windows download
2. eMbedded Visual C++ 4.0
3. SDK for Windows Mobile 2003-based Pocket PCs
Confused...
Wow, writing a bootloader. What do you intend to do with it? Custom OS or something else?
Guys, this is unlikely to be helpful for assembler etc., but I wrote an opus about an introduction to programming, from a beginner's point of view (ie mine!) a few days ago. Might be helpful to some.
http://forum.xda-developers.com/viewtopic.php?p=209136#209136
V
Hi everybody,
I'm a really-confused guy about programming PDA...
I have a PocketPC 2003 device. I have to use TAPI for my university final project and I want to establish a data call through GSM from this device to a desktop PC with a GSM USB device working as modem.
Now...
-I've built a dll with TAPI functions with eVC++ 4.0
-I've built a wrapper in c# with VS2005, a smart device application that calls the functions I need stored in the previous dll (using p/invoke).
-I installed pocket PC2003 SDK from Microsoft.
Am I right?does the pocketPC support TAPI or not?I'm really confused b/c I'm reading tons of forums and some say it works and someother say the contrary...
please, only tell me if I'm using the right method of programnming.
thanx
looki here:
http://forum.xda-developers.com/viewtopic.php?t=38223
That question would probably have been better put in one of the other tapi threads.
I know you want to do ppc to pc but give that a try first. If you can borrow someone else's phone because you will need two ppc for this test. If you can communicate ppc - ppc then ppc -pc should be easy.
Every ppc phone I have had can make and receive data calls, but I have not rewritten the program to work with wm2005 so if thats your os don't bother.
There is another way to get a connection between a ppc -pc over a call. One of my phone/gprs cards had a gprs config tool that let me manually enter the number for gprs. After that I was able to use the terminal services client on ppc to take over my pc. The ppc tries to connect via the gprs and that dials my home phone then I set up the pc to accept incoming phone calls. After logging in it worked very well as long as some data was being transfered. The problem was that if no transfer occured for more than a few seconds the connection dropped out. I think its because the modem was treating a regular call as gprs, ie doing nothing when its not needed.
well vijay, i only want to get some outputs on my pocket phone, testing stuff etc
the problem is i dont have any experience about the bootsectors of the sd card (i think thats the only way not to erase wm2003), else i dont have any experience about the architectur
on pc its easy, because you have much references and some forums about this stuff, but for ppc i dont think there is any forum about os developing.
on pc you can easily use a floppy , writing the bootloader in the bootsector and let the bootloader call the kernel, thats it (for the beginning)
has anybody some stuff about it? some informations, would be helpfull
thanks
Have you seen itsme's posts (I think) in the wiki, and generally on google. The kernel stuff there was whoosh, right over my head. Incredible work, definitive I'd say. The founding fathers of XDA devs have done quite a lot of work on this stuff I think.
V

Running PPC specific code on Smartphone device

Most of us are already aware that PPC and smartphone edition are similar enough to be mostly compatible in their apps across the platforms.
That is, with enough coaxing and the help of input simulators like SPHelper, I've managed to run almost any Pocket PC app on a smartphone device.
Well, until now.
I've officialy run into my first brick wall of sorts, and I'm hoping someone here can shed some light onto the situation.
Since the MS implementation of A2DP has quality issues, I'm trying to run MSI Blueplayer app ( found at http://cweb.msi.com.tw/program/support/download/dld/spt_dld_detail.php?UID=619&kind=8) on a smartphone.
Analyzing the cab, I extracted 4 .dll's that go in the \windows dir (msibtstk.dll, msibtapi.dll, CHS.dll and TW.dll), and two .exe program files that go in program files\msi\blueplayer (STLoader.exe, and MPOBCE.exe).
Now, normally its as simple as running the .exe, at least it always has been in the past.
However, every time I hit MPOBCE.exe, all I get is:
"Alert
Can't find MPOBCE or one of its components. Make sure the path and filename are correct and that all the required libraries are available."
Just to control this experiment, I copied the exact same files over to a PPC device and ran it to find that it DOES work.
Now, I've never encountered PPC specific code before- in fact, I didn't even know such a thing was possible. Has anyone see/heard of this sort of thing before?
Can someone help me take this apart and find out what makes it work on a PPC only? Perhaps a PPC-specific path (if there is such a thing)?
At this point, as much as I'd like to get this working, I'm just as much intellectually curious as to what would cause a program to only operate on a PPC installation.
Hello Dishe.
Your problem is simple: Certain DLLs that come built in Pocket PC version of windows mobile do not exist in the Smartphone version. An example is MFC DLLs.
What you need to do is get hold of 'dependency walker' which is a neat little app that MS incorporated in to VS 6 (though I understand it was written by an independent developer and should be available separately).
It will show you exactly which DLL files each exe is linked to. You then have to get a good copy (from a ROM dump) of the needed DLL and put it in windows directory.
Hope this helps.
That's a great idea. Thanks! I never heard of the dependency walker before, but it sounds like a perfect tool for this. I'll have to check it out on my office computer (I don't have VS 6 at home).
I wont be back in my office until wed., so if anyone had a bit of spare time, I'll attach the files here for someone to examine.
If anyone wants to look into it and tell me what dll's are required, I can get ahold of them from a healthy Pocket PC image.
Thanks!
This zip file has the two .exe's contained in the installation. I think only mpobce.exe is complaining about missing components, though.
Oops, apparently I should have checked first...
Dependency Walker is a free app. I downloaded it and tried it out.
It lists a bunch of .dll's, most of which I had on smartphone.
However, the two missing ones are:
mfcce300.dll
olece300.dll
Now, I'm not exactly sure what these do, so I need to look into it some more. Does anyone have any clue what these are for? If I copy them from a Pocket PC, will they operate on a smartphone?
Hi Dishe.
I guess I should have been more clear: Dependency Walker was written as freeware by an independent developer, but M$ liked it so much they decided to grab it for VS.
Any way, mfcce300.dll is MFC version for PPC (if you are not familiar with MFC, it's a collection of "ready code" that simplifies writing apps in c++)
It comes built in for PPCs but not for smartphones for some reason. If you have a good dump check that DLL with dep. walker as well, I am pretty sure it is linked to a few others.
olece300.dll - is a COM support dll. I won't even go there because I really hate COM (that's Component Object Model, not com port) and I am really not sure my self what the DLL does.
If you do get a good version of those two you should be able to get the app running.
levenum said:
Hi Dishe.
I guess I should have been more clear: Dependency Walker was written as freeware by an independent developer, but M$ liked it so much they decided to grab it for VS.
Any way, mfcce300.dll is MFC version for PPC (if you are not familiar with MFC, it's a collection of "ready code" that simplifies writing apps in c++)
It comes built in for PPCs but not for smartphones for some reason. If you have a good dump check that DLL with dep. walker as well, I am pretty sure it is linked to a few others.
olece300.dll - is a COM support dll. I won't even go there because I really hate COM (that's Component Object Model, not com port) and I am really not sure my self what the DLL does.
If you do get a good version of those two you should be able to get the app running.
Click to expand...
Click to collapse
Thanks for the help, I'm realizing there's a lot more to this I should have known before embarking on such a task. I've never had such a problem doing this before, I guess MFC isn't so popular!
Anyway, I need a good ROM dump, I haven't been able to aquire one. In the mean time I tried some files I found searching google... didn't expect it to work, but tried it anyway. Still complained of missing files- you're right, I'll bet MFC is calling more dll's as well that I need.
Perhaps there's hope...
You were right... I just needed more .dlls!
I found a whole series of .dlls required by mfcce300.dll that my smartphone was missing, so I put them all in the program directory and it opened!
Problem is, its not so stable... the files were pulled from a ce.net-4.1 set of files since I don't have access to a wm5 rom image.
One more thong I should have thought about earlier:
Some COM dlls, maybe even olece300.dll have a function called DllRegisterServer that writes them to registry as COM provider (under HKCR\CLSID).
Check to see if I am right using Dep. Walker and if so try to get regsvr32.exe or something similar for the PPC. (On a PC you use regsvr32 somedll.dll to register a COM server)
This may help with stability issue.

Application programming for HTP P3300 (ARTEMIS) and a few questions

As I'm new in this forum: Hi everybody!
I have been programming Windows CE-based devices for many years, but no experience yet with the HTC ARTEMIS (P3300). Therefore, I've a few questions and hope to get answers from this forum:
- I assume, it is possible to program visual-C++ based applications for the programme. SDK for Windows Mobile should be available at Microsoft. Is that correct?
All further questions are based on the assumption that visual-C++ (or embedded VC) is used for application development.
1. Is it possible to direclty receive incoming Short Messages (SMS) via the application? (Any keyword on how this works would also be welcome)
2. Is it possible to query the battery status from the device?
3. Can the GSM module easily be accessed and can Cell-IDs or carrier IDs be read from the device? (In particular, I want to identify the home country of the current mobile carrier) - If yes, how does it work?
4. Is it possible to restrict the appearance of the ARTEMIS. I.e., the user should only be able to access "my" application and mobile phone (voice) features. All other applications and system functions shall be hidden to the user.
Thanks in advance and kind regards,
ma_gu
yeah the stk can be downloaded and accessed from visual studio
1. i would asume so even if it had to be don with a dll hook
2. yeah many 3th party applications can display it asume there is an api call to get it
3. yeah there is an api forget the name searching in this forum should give some hits
4. yeah but if they hardreset or reflash the device it would be more troublesome
Hi Rudegar,
thanks for your fast reply. That sounds good and I think, I'll be able to find the regarding API calls (anyway, if somebody could provide some keywords, it would be very welcome).
But I have never restricted the appearance of any Windows-CE based device (question #4). How can this be done? At the beginning, I assumed that this needs rebuilding of the operating system via a system builder, but that's obviously not the case. Can you give me some hints on how to do this?
Kind regards,
ma_gu
http://forum.xda-developers.com/showthread.php?t=256646&highlight=programming
the api is called ril
depend on who you wanna develop really
1 option is making pure arm code (kinda skipping the ce) using gcc compiler for arm
2 option is the high lvl c# .net or c++ .net path but it's not that fast and dont have as much os access as pure win32 stk and even microMFC
3 option microMFC old ms class lib for c++ oop the granddad of .net you might say
4 pure win32 stk you handle the msg loop and everything more work but more power where many developrs who do today items and programs end up
if you can live with .net it's the easy path
if you want more then starting with microMFC and moving on to pure win32stk is prob the thing
java is not that well supported by wm imho
oooh yeah and you dont use platform builders and stuff like that
unless you are building roms from scratch and got access to all drivers for spc devices
you start a new project in embedded visual stuio or visual stuio 200X
and pick your path as in .net or the likes
and then you can debug using a simulator or directly on the device
it use activesync to get the exe there
otherwise you can normaly activesync the exe file to your device and run it directly
or copy it to a sd card and run it from there

Samsung Fridge with wireless TV

This may seem like a strange request but I have this wireless TV, it just so happens that it is attached to a refridgerator. Its made by Samsung and the TV is called an "I.C.E. Pad" and it runs its own software called Popcon. Being the curious engineer that I am, I found a USB connector on it and decided to plug it in. After connecting I noticed that it's just Windows CE that runs this popcon software at startup. Is there a way that I can interrupt the boot process in one of the .hv files to have this thing come up into explorer instead of the popcon software? In the windows folder there is a user.hv, default.hv and boot.hv files, I was told that these are the registry files and the boot.hv is where they startup is. The reason why I want to do this is because the TV runs on 802.11b wireless and would be nice if I can use this as a tablet when not using the TV and I could just run the popcon software when needed. I am in no way experienced with windows mobile or CE and would like to see if someone could help me. I've been able to dump just about everything of the two partitions onto my computer to play with them, just a few DLL's that won't copy due to sharing violations. Thanks for any help.
you should check out some GPS forums, they have more experience with Windows CE devices since a lot of GPS PNA devices are build on Win CE. There you will be able to find some tools to interrupt the boot process I suppose. A lot of PNA devices can boot custom software by using special files and folders on the storage card, do you have a storage card?
good luck...
VOODOOS!L
There is a connector next to the USB connector but have no idea what is for but a storage card woudn't fit, no matter what kind.
I'll try the GPS forums, thanks.
I ran into similar issues with a post I made about my own WinCE device. The thing about this forum is, there are loads of people who can answer questions about Windows Mobile, which is based on WinCE, but actually a seperate OS, since they share a kernel but much else is different.
Good luck finding some help with your WinCE device, but it seems most people here are only in their comfort area when talking about the Windows Mobile OS, which is only *based on* WinCE and is otherwise a completely different OS.

Help cracking software on Windows CE Device!

I'm not sure if I am in the right place to ask this, but here goes.
I work for a land surveying company and we have been using a software called C&G to collect data out in the field. The software runs on a piece of hardware called a data collector. To be more exact, it is an Allegro CX made by Juniper Systems. The device is loaded with Windows CE .Net 4.20 along with a program called PocketDOS. The C&G program runs inside of PocketDOS. The software is SUPER old and the company is no longer around to support it. We have no desire to purchase a new software package as this one works just fine for what we need and everyone is used to it.
We have at least 8 licenses for this software, but the problem is, it is coded to register based on the serial number of the Allegro data collector. We have had multiple data collectors go bad, so we are looking to purchase more units, but we will be unable to register the C&G software on these units because the serial numbers will be different.
So my question is, can anyone help me modify the C&G program and make it so that it does not check the serial of the data collector? That way, we can purchase new data collectors and load the software (that we have rights to) on the new units. If the company were around to support the software, we would be able to call them and they would generate new registration codes.
I can send links to download the software, along with any DLLs you might need from the data collector.
Any help on this would be greatly appreciated! Thanks for your time!

Categories

Resources