Dll injection problem in WM5.0 - Windows Mobile Development and Hacking General

I have developed a program using eVC4.0, buit for Pocket PC2003. Most functions are working well in WM5.0 device.
But I found I cannot inject a dll into filesys.exe properly using PerformCallBack() ( LoadDriver() ).
This dll doesn't export any function. I found if it exports at least one function, it will be injected successfully. Why?
And, if I press "Power" button for several times, somtimes the system will be hung.
Anyone know the reason? Thanks first.

My injected DLLs work fine. But they always export at least one function

Related

Automatic install after hard-reset

I've got a slight problem with this device, probably also with all other WM5.0 devices.
There's this application which I have developed to operate as a shell around Windows Mobile, so users have limited functionality. This is to relieve the people at the helpdesk, since users can't mess up settings and install virusses anymore (at least not that easy).
The way I installed the software on Windows Mobile 2003 (SE) was to install my Autorun.exe in the \Storage\2577\ directory and my cab-files, which needed to be installed, in the \Storage\Main\ directory.
I also used the folders \Storage\Downloads\ and \Storage\Installed\, but to keep things simple I won't mention further anymore.
This solution worked like a charm. After every hard-reset/cold-boot my application was installed again and users could happily operate their devices once more.
Now, as the WM2K3 devices aren't available anymore, I need to port the application to WM5.0. After some minor modifications the software now finally works on WM5.0, except for the installation.
It appears that there isn't an Internal Storage folder anymore. This is probably because of the fact that WM5.0 has the so called 'persistant memory'.
The problem is, the memory is completely erased when doing a hard-reset/cold-boot. I do this by pressing the 3 buttons on the side and pressing the [reset]-button also. After a while the device will perform the hard reset (as usually).
Now, I've read in the Google groups that the root-directory of WM5.0 devices operates as the internal storage, but it appears that this information is faulty. The root folder is also emptied after a hard-reset.
Also my contacts and appointments dissapear after the hard-reset, which is normal WM2003 behaviour, but I thought they were persisted on WM5.0. Perhaps they only meant they are persisted when the battery is drained.
Well, in short:
Where can I put files on a WM5.0 device, specifically the Qtek 9100, so they aren't deleted after a hard-reset?
Is it even possible on a WM5.0 device, if so which device(s)?
Quick solution would be to use a SD-card and let my Autorun work with the OnCardInsert function, but that doesn't really float my boat....
WM5 uses its Extended ROM (Ext-ROM) to install customized software, which survive a hardreset.
Even though the answer isn't exactly what I was looking/hoping for, it did help a little.
First I was looking for the search-string 'persistant memory' or 'persistant storage' which gave numerous results, but none of them with answers to my problem.
Now I used Extended ROM as a search-string and that did help a bit better. Didn't even think about using this before, oh well, it appears posting a question does help indeed.
One of the answers I found was this:
[HKEY_LOCAL_MACHINESystem StorageManager ProfilesTRUEFFS_DOC1]
"MountHidden"=dword:00000000
"Folder"="ExtendedROM"
"PartitionDriver"=""
"Name"=""
"DefaultFileSystem"="FATFS"
[HKEY_LOCAL_MACHINESystemStorageManagerAutoLoadTRUEFFS_DOC1]
"Bootphase"=dword:00000002
"Order"=dword:00000001
"LoadFlags"=dword:00000001
"DriverPath"=" DriversBuiltInTrueFFS1"
The bold registry values need to be edited. This way you should be able to see the Extended ROM in the file explorer.
Well, it doesn't. You still can't see it. It is however possible to access the extended rom and write files to it by making files in \\Extended_ROM\\.
Still trying to figure out how to copy/move CAB-files to this directory, but that should only be a matter of time. Otherwise, the work-around is already in my head
total commander would do the trick, just type "\extended_rom" and copy up to 9.5mb of cab's

HKEY_LOCAL_MACHINE\init - App does not start

Hi,
I've programmed a small MFC-based Visual c++ application which I want to start automatically on boot on an ARTEMIS device. The earlier the app starts, the better. Thus, rather than creating a shortcut in windows\Start up, I decided to add a registry entry into HKLM/init as "Launch90" "myApp.exe" The executable is placed in the /Windows directory.
But it does not start as expected, just occasionally. I got the impression that the application comes up only the second or third reboot (soft reset) after installing the CAB file. After other reboots, no indication why the application fails.
I have already tried to vary the number right to "launch" in the key, tried to set a dependency, set the MFC to static and to dynamic, but the application does not start. (by the way, it works well when adding a shortcut to the start up directory). I have no idea why it does not work with the registry approach. Do I have to consider something special for such kind of applications?
thanks in advance for any idea...
Gunther
Is it signed or authorized?
When you run your application your device asks you if it is OK to run because it is not signed (unless you disabled that in security settings).
If you answered yes once, it won't ask again.
However if you try to launch unsigned and unauthorized app from init it will just ignore it.
Another possibility is that your app is trying to access an unavailable resource (maybe something on storage card?) and crashes. Make sure everything it needs is available during init stage.
I guess the signing issue is one of the reason for the problems. I've in the meantime created an individual certificate, installed it on the device, and signed my application with that cert.
The behaviour improved: At most reboots, my application comes up as expected. But sometimes it does not. I just rebooted my device 5 times, 4 times it worked and once, launching the app failed. Another reboot again succeeded.
Do you think when launching the application with the reg setting "Launch95", it sometimes happen that the MFC DLL can not be accessed (it is linked during runtime)?
Create somewhere shortcut to execute your exe with one and only one parameter: "90"
Something like this:
Code:
0#\windows\myApp.exe 90
If app doesn't start - read this thread:
http://forum.xda-developers.com/showthread.php?t=302013
initlauncher may be method for vjtoggletoday missing tray..hmmm.
thx for that topic.
Thanks for the hints, but I'm still not satisfied with the outcomes. I've implemented the InitLauncher.exe (with slight modifications) and it works also with multiple reboots. But then I did a "hardcore test": I rebooted the device, InitLauncher.exe was executed and the second application came up. Then I've removed the battery. Since then it does not anymore work.
The certificate is still listed in the device, but could it be that something happened to the cert by killing the system? (For installing the cert, I simply copied the myCert.cer to the root directory and executed the cert installer by tapping the cer file.)
Or could the signature of the executable have been damaged? Any idea how to avoid such problems?
Addendum to my last post: I've now tried to re-install the Certificate on the device by again clicking the *.cer file - autostart worked again. Thus, I assume that something happened to the certificate on the mobile device. But the question is: WHAT happened...?
I recommend to you test all in emulator at first.
Or make hard reset and test on clear system.
I did a hard reset, re-installed the application and tested again. On warmstarts, it mostly works, but not everytime.
And there's another thing that puzzles me: When I create the CAB-Installer, all modules get signed using the signtool. If one of the modules is replaced (e.g. the replacement .exe is just copied to the device and overwrites the existing one), on first start the device always pops up a security warning as it does with unsigned apps, although the new exe has been signed as well.
Could this be caused by using a proprietary signature rather than one of the commercial pre-installed ones?
I furthermore used the signtool to sign the CAB file (I also tried to include the certificate through a pre-XML file when creating the CAB file) - however, this has no effect: Anytime the CAB is being executed on the device, the security warning pops up...
Possible you use wrong sertificate?
please show name of it.
Also don't forget to install certificate on device!
Basically, its a self-created certificate. The certificate is acutally installed on the device (copied the .cer file to the device and clicked it - it then shows up in the device's certificate list)
When signed applications are manually started on the device there is no security warning. Thus, I assume that the signature of the executables and the installed cert match.
Again back to the start-up problem: When using user-created certificates and when autostarting apps through HKLM/init: Do these apps have to wait for another module to be loaded first?
Không vào được màn hình Home của DVD trên xe hơi chạy winCe 6.0. Xin giúp đỡ.
Hello friends !
I'm living in Vietnam
I recently accidentally reinstalled the system of the DVD in the car.
Run operating system win CE 6.0
Now it's time to start it straight into win without going to the default home screen of your head. I've been able to understand but can not do anything else to make the situation better. Currently the new room is not possible.
Can you just help yourself to boot it (the app home line is: \ Residentflash2 \ app \ home.exe).
I hope you help me. You can instruct yourself how and if any editing software. I would like to thank !
Email: [email protected]
---------- Post added at 07:59 PM ---------- Previous post was at 07:56 PM ----------
Hello friends !
I'm living in Vietnam
I recently accidentally reinstalled the system of the DVD in the car.
Run operating system win CE 6.0
Now it's time to start it straight into win without going to the default home screen of your head. I've been able to understand but can not do anything else to make the situation better. Currently the new room is not possible.
Can you just help yourself to boot it (the app home line is: \ Residentflash2 \ app \ home.exe).
I hope you help me. You can instruct yourself how and if any editing software. I would like to thank !
Email: [email protected]
Hello friends ...I accidentally deleted the file \ Residentflash2 \ app \ home.exe . Any one can send me this file ? My double din not work any more .

VB programs in WM5 without port to .net

I'm trying to run an especific application made with VB in WM5. Although many statememts that this is not possible and that we have to migrate the code to .net, I managedto make it run. After installation however, no new programs are allowed to install. Can you help me founding the root of this issue? Is important to me to learn about the origin of this incompatibility.
I guess you mean evb programs (scripts)... i think its that after uninstalling them there is a problem with the files with .vb extension and that can be solved when creating the distributable cab changing the regkeys that are modified (its a value wich is changed from 0 to 1 but I can´t recall)... i guess the solutions is explainde in omnisoft forums, also there is the explanation to register additional components to evb... well, it has a long time since i try it... also it works with wm6...
Thank you for your answer. The problem was different.
A specific app Called Diagnosis Pro ( Very Expensive one) refused to install in my WM5 and WM6 devices. It only worked at PPC2002 and WM2003 and 2003/SE devices. Now I managed to install it in My WM4 and 6 devices after changing the dlls that was in the cab file. It's working Ok now.
It's Ok!

[HELP] How can we check out the dependency files of a .exe running in Windows Mobile?

How can we check out the dependency files, like some .dll files, of a .exe running in Windows Mobile?
I am using LG KS20, and recently DIY to port my rom from 6.0 to 6.1.
However, my camera is not working properly in my DIY rom, so i want to check out the dependency files of my camera.exe and therefore fix it.
Dependancy Checker
raykisi said:
How can we check out the dependency files, like some .dll files, of a .exe running in Windows Mobile?
I am using LG KS20, and recently DIY to port my rom from 6.0 to 6.1.
However, my camera is not working properly in my DIY rom, so i want to check out the dependency files of my camera.exe and therefore fix it.
Click to expand...
Click to collapse
I believe DotFred's excellent Task Manager should be able to do the job you're looking to do. You can get it here: http://www.dotfred.net/TaskMgr.htm. Hope it helps.
Cheers,
Soul_Est
THx, Soul_Est
But now i have another problem, when i run my camera.exe, which is actually LGCamera.exe, it is in full screen mode so how can i switch to taskmgr while i m running the LGCamera.exe?
program a button to display the today screen....the Camera will still be running in the background after you press the today button, and you can run taskmanager.
However once i press other button like "Call" the camera.exe will exit entirely b4 get to today sceern.
But finally, i have solved that out
PE Explorer
Resource Hacker
Dependency Walker
Those software above could check for dependency
SKTools has it all!
raykisi said:
How can we check out the dependency files, like some .dll files, of a .exe running in Windows Mobile?
I am using LG KS20, and recently DIY to port my rom from 6.0 to 6.1.
However, my camera is not working properly in my DIY rom, so i want to check out the dependency files of my camera.exe and therefore fix it.
Click to expand...
Click to collapse
Actually, SK-Tools does a great job of this. If you go to the "Installed Programs" tab, it will show an entry for pretty much every "installed" executable...when you tap on the app in question, it shows all of the files and relevant registry entries for that program. Hope this helps, I've used it for this purpose many times....

Problem with wmwr_cprog

Hi,
After a hard-reset I found wmwr_cprog.exe on my internal storage under programmes. Since I did a hard reset and thus thought this program wouldnt be installed anymore, I deleted the file, not knowing what it was for.
Now everytime I want to start my phone I get the message "The file 'wmwr-cprog' can't be opened. It isn't signed with a trusted certificate or one of the components can't be found. You might need to reinstall it or repair it if this problem keeps returning' (free translation from a dutch ROM).
What can I do and how can I do it. A quick answer is much appreciated since I cant make nor receive phonecalls and I am at work :-(.
Thanks in advance!!!
Solved
Posting the solution if someone else has or will have this prob in the future:
KB0808022: "The file 'wmwr_cprog' cannot be opened" error message after uninstalling WMWifiRouter
wmwr_cprog is an executable used to allow WMWifiRouter to work on devices that do not have actual voice capabilities, like the EM-ONE. Sometimes this application is not removed from the registry correctly when uninstalling WMWifiRouter, which can cause your phone to give you error messages.
To fix the error, you will need a registry editor, like PHM RegEdit (to use on your device itself) or MobileRegistryEditor (MRE) (to use on your computer and edit the registry over an ActiveSync connection).
Once you have launched your registry editor of choice, change the:
HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Rai\:MSCProg\1
entry from:
wmwr_cprog.exe
to:
cprog.exe
Close the registry editor, and wait two minutes - to make sure your device has saved the changes - and soft-reset your device. After the soft-reset, everything should be working as normal again.
Bartse said:
Posting the solution if someone else has or will have this prob in the future:
KB0808022: "The file 'wmwr_cprog' cannot be opened" error message after uninstalling WMWifiRouter
wmwr_cprog is an executable used to allow WMWifiRouter to work on devices that do not have actual voice capabilities, like the EM-ONE. Sometimes this application is not removed from the registry correctly when uninstalling WMWifiRouter, which can cause your phone to give you error messages.
To fix the error, you will need a registry editor, like PHM RegEdit (to use on your device itself) or MobileRegistryEditor (MRE) (to use on your computer and edit the registry over an ActiveSync connection).
Once you have launched your registry editor of choice, change the:
HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Rai\:MSCProg\1
entry from:
wmwr_cprog.exe
to:
cprog.exe
Close the registry editor, and wait two minutes - to make sure your device has saved the changes - and soft-reset your device. After the soft-reset, everything should be working as normal again.
Click to expand...
Click to collapse
thx problem too

Categories

Resources