Editing Memory Dump - Windows Phone 7

Dear WP7 Chefs,
while Jaxbot and I investigated the possibilities of the Qualcomm Mode of the Lumia 800, we stumbled upon a Problem that seems to need some capable chefs to solve.
We sucessfully managed to get a full Memory dump of the Lumia 800. This Memory dump was split using nb7Split. After splitting, we were confronted with various .bin files:
BSP
DPP
IMGFS
NK
PADUSER
SLDR1
SLDR2
User
USP
Our main goal is to edit the registry and copy everything back to the Lumia. By using OSBuilder it was possible to dump the default.hv file and edit it. Our main Problem is now to recombine everything into one "memory dump" that can be copied back to the device. Basiaclly we need to rebuild a BIN file from the edited System files and Combine them with every other bin file into a 15.627.976.704 Byte file. Are there any Tools out there to accomplish this task?
Any help is really appreciated
Regards
Chris

You should wait for new version of OSBuilder - it can do it.
However, correct work with those dumps isn't guaranteed. OSB does only wmstore rebuilding.

Thanks for your answer. I guess there is no timline for the next Version of OSBuilder? What exactly do you mean by wmstore? Is it a Special Format or partition?

I would say that timeline is "next week". Most likely.

Thanks. I guess I'll have to wait for next week then

Related

Handmade config.txt for ms_.nbf (extended ROM image)...

...Third day I spend to find how to persuade mine i-mate to use it's extended ROM as backup image source ... Have some troubles, maybe someone will be interested:
1. I've started from filling extended ROM with .CABs needed by me. Great. It works but I want to have more. So for now I am "on research":
2. I have installed all needed software and configured mine device to consist of all needed soft and settings for me.
Than I made self extracted image of my device (registry, \Storage, \Windows, etc.) except of Storage Card, of course, by SPRITE SOFTWARE BACKUP.
I get about 10 megabytes self-extracting .exe, named (for example)
_install.exe and I have wrote it in ROM file and include in config.txt string like this:
EXEC:\Extended_ROM\_install.exe
but I meet some troubles, and stuck...
1. that self-extractor looking to place one runtime dll from itself in current directory where it is. Of course it can't (rom is readonly for it).
And it fails with the 'cant extract DLL...' error, and... That's it!
After that I need to install any RegEdit manually from SD card, change registry for Exteneded_ROM to be visible, manually copying file _install.exe from that ROM to \temp\, than run - and only after that I bring my backup image to life...
Does config.txt supports some kind of commands like COPY for me to copy that .exe from Extended_ROM to \temp\ and then run?
Or config.txt have no ability to make copies of files?
Than, hypothethically, I need another simple programm like copy.exe to do this manually from command line?
After all this I just expect to get restored image of mine Himalaya already packed with soft and configured for me...
Fellows, what you think about it?
One more: how to exclude config.txt from being visible in PocketWord if I want to left extended_ROM to be open? (for ex. I put there .exe's that don't require installation)?
Sorry for mine English
-------
BTW: GREAT LITTLE DEVICE, after first XDA it's like more oxygenic ... O3 (ozoned .
Yes, config.txt supports COPY commands, check this thread
http://forum.xda-developers.com/viewtopic.php?t=6648
To make the ext-rom visible you can also edit one of the cab-files which only updates registy settings with WinCE Cab - Manger and add the registry setting to make ext-rom visible ( I think it is :
HKLM\System\StorageManger\Profiles\TRUEFFS_DOC
MountFlag 0 : but check this... )
Alex
WOW! THANKS! I supposed about CPY1: CPY2: cause I saw them in autorun.exe with hex editor... So It is! great... Let's try...
I'll write results here.
Only weary thing that I neen every time to rewrite all ROMs (somewhy when I delete Nk.nbf & radio rom and left only extended rom - upgrade will not end normally and device after hardreset enters into bootloader...
IT WORKS!!!!!!!!!!!!!!!!
YES! From empty Himalaya after hardreset I now recieve FULLY LOADED MINE device! even with setted up today and all else !
Wow!. .
Here is attached make_visible_Extened_RAM.CAB sized in 400 bytes - it will just only modificate registry to make Exteneded_ROM subdir visible.
Maybe someone will need it.

OS Bad Block Checker

Ok, here it is; this file will take any OS.nb and analyze it for bad blocks; it won't tell you if the OS is properly valid or not, but it can tell you if flashing it will bollocks up your Hermes or not.
no warranties as usual; and it's also quite faster without the progress bar turned on, just to let you know.
Fabulous!!
Now I can safely test the new OS building process I want to use for WMXL v0.30
Another safety measure for the Hermes.
this is only getting better.
You got to love this forum, great work guys
thanks again Olipro, that one will be handy
Thanks so much, great work as always; we've been quite spoiled with new tools these last few weeks! The Hermes time has truely come!
Olipro, mate truly another great tool... its getting hard to keep up... how about a wrap up thread of your tools....
yes, a "wrap-up" thread will come in the form of ROM Kitchen which I will have released within the next two weeks... should be good
OS.db
How can I get an OS.db?
I only have RUU....exe ROMs and i do not know how to obtain OS.db from it?
Can anybody help me or send me an OS.db for me to reconstruct a dumped ROM for SPV M3100 orange spain?
Thank you.
.nb
Olipro was talking about the os.nb, there's no os.db file.
You have to unpack your exe file, there should be
.) ruu.exe
and
.) ruu_signed.nbh
in it.
Then you have to use duttys good nbhtool to extract the os.nb from this ruu_signed.nbh. Its not possible to send you a .nb file because its at about 70 megs.
Thank you.
But the roms files that i download are *.exe and if i double click it, an installation window appear.
How can i extract the files you say from this *.exe?
You have to install winrar or winzip first then click with the right mouse button on this .exe and extract it to a folder.
But honestly said (and with all due respect): If you don't know how to extract a file its better to do not anything with this file nor to flash it. Because its possible to brick a device during flashing and its a long, long way to unbrick it, especially without computer knowledge and comprehension.
Thank you.
I agree with you that if i do not know how to extract a file, it is better not to do anything more complicated.
But I have extract and comprime files lots of time, the problem was that, until now, i had only ROM files from HTC and this file is an exe, not a compromed exe. So I cannot extract anything. I answer thinking that with a special programm it was possible to extract the file from this *.exe.
Now I have download a ROM from Schaps and I have got the nbh file without problems.
Thanks.
Is there a os checker for files .nbh ?

To ROM cookers: working on a nice program for making ROMs

Hello everybody!
Even if this is my first post on this forum, I use to visit this useful place since years, I tried many of those great WM6 ROMs made by our ROM cookers (thanks to all), then I tried to cook my own ROMs using tools recommanded in the Wiki.
But those kitchen tools weren't conveignent for my use, it was a lot of work and patience for making ROMs, we need to use many different programs and scripts, and I thought that the cooking process could be really simplified using an unified graphical interface like dutty's tool. I was patiently waiting for his Hermes Rom Koch V2, but finally I started to develop my own kitchen tool!
Here are some features of this program:
- ROM file manager (to add/delete/extract files or to create shortcuts)
- ROM layout editor (to edit init flash files)
- Registry editor (to modify/import/export default & user registry)
- CAB install files integration
- ROM creation from original OS image or dump directory
I posted some screenshots for better explanations.
This program simply use aWaiter and ImgFS tools for ROM creation/extraction.
For now I still have a lot of work on it, but I would like some advises from experienced developers on this forum, because even if my program works, I would like to know if the cooking process is porper and safe, and how I could improve it (for example using internal functions for ROM creation/extraction instead of external programs, implementing NBH tools,...).
If some of our XDA-developers are interested, I would really like to make this project an Open Source "all-in-one" ROM cooking program, gathering all the others kitchen tools in an unified graphical interface offering the easiest way to cook nice ROMs for our Hermes and certainly for other devices.
I know that I didn't give many details about my program but don't hesitate to ask me about it. I would also have few questions for developers.
Developers and ROM cookers, I'm waiting for your feedback!
Thanks.
This looks very user friendly, I will be watching closely. Good work.
What language is it in? (programming language that is)
Midget_1990 said:
What language is it in? (programming language that is)
Click to expand...
Click to collapse
I developed this program in C# (using .NET framework 2.0).
Thx for your work! It would be better if the tool support packages.
http://forum.xda-developers.com/showthread.php?t=296861
Where to download??
Thanks for the link. I already thought about working with packages because it seems to be a better way to make "clean" ROMs, but I couldn't find enough information about how to extract/build packages in ROM.
I tried bepe's package tool on my own cooked ROM and I noticed that removed files were marked as missing in packages, and all the files I added weren't moved from dump directory. There is nothing surprising, but I wondered if adding/deleting manually files from ROM, causing "corrupted packages", can have any effect on final ROM. If not then why packaging information (like .dsm and .rgu files) are still present in ROM after all packages were merged? What exactly contains .dsm files, and how to create them for adding new packages?
Could someone tell me more about building packages, or tell me where I could find all the information I need.
Thanks
I'm still working in this project, so I didn't plan any release yet.
Good idea and nice project.
Go on dude !
Good work.
Great work so far - I fullly support this project.
Lookign forward to the release.
schaps said:
Could someone tell me more about building packages, or tell me where I could find all the information I need.
Click to expand...
Click to collapse
Great project - and I agree, it definitely should support packages. If you've had a look at bepe's kitchen, you already know how much easier it is to understand the purpose of all the files in a ROM if they are organized in packages.
.rgu files are Registry "source code". They are not part of the package mechanism. And yes, when cooking a ROM you can leave them out, as they are not needed at run time. Saves a bit of space.
The .dsm files, otoh, are needed at run time.
When I cooked my ROM, I did find some information (written by bepe) here in the forum about how to make your own packages. Can't remember where that was, but I found it on my hard disk, so I simply quote it here again:
How-To build ur own OEM Package:
An OEM Package is just a simple folder containing files and registry settings for the ROM
First of all you'll need a GUID number for your Package.
Go to http://www.famkruithof.net/uuid/uuidgen to get one.
In my case:
283b9db7-cb03-4c1b-820e-ca49b2c3b5db
Necessary steps:
1. Create a new folder:
Dev/OEM/[Your package name]/
2. Create a empty text file:
Dev/OEM/[Your package name]/283b9db7-cb03-4c1b-820e-ca49b2c3b5db.dsm
(CreateOS.exe will finish this file for you)
If needed:
3. Create an UNICODE text file:
Dev/OEM/[Your package name]/283b9db7-cb03-4c1b-820e-ca49b2c3b5db.rgu
This file could be used to add registry entries to the ROM
First line is:
REGEDIT4
...
and there MUST be a empty line at the end!!
4. Create an UNICODE text file:
Dev/OEM/[Your package name]/initflashfiles.txt
This file could be used to create folders or copy files, shortcut on the ROM.
For Example/ Ilustration: Open or read Dev/LOC/initflashfiles.dat using a text editor or any premake initflashfiles.txt at one of the OEM folder.
and there MUST be a empty line at the end of iniflashfiles.txt also!!
Copy all files you need to Dev/OEM/[Your package name]/
Click to expand...
Click to collapse
Hope that helps. If I remember correctly, bepe told me that the OEM folder is treated a bit differently from the SYS folder, so it might be you can't create packages there. But then, you probably also shouldn't.
Oh, and about the initflashfiles.dat: you are aware that the initflashfiles.dat just copies files and does not move them? Using this feature extensively uses up ROM space very quickly, so it should be done for small files (like the start menu shortcut files) only.
Cheers
tadzio
Thanks a lot for your help tadzio!
I also read the different steps about how to add a new OEM package, I found information on this Wiki if someone is interested : http://wiki.ppcgeeks.com/index.php?title=Kitchen.
I think I know enough about it but what I would know is how to extract packages then to merge them for creating a ROM image, like do bepe's tools?
I confirm I also heard that OEM folder processing is different from SYS folder.
Concerning the initflashfiles.dat I guessed that files were copied from ROM to storage memory, good to have a confirmation. So it means that if we want to include a new program in ROM, we should better to let it in Windows folder than to put it in a Program Files folder, right? I have another question about initflashfiles.dat, I saw that it sometimes uses variables for directories instead of strings (for example Directory(LOC_XXX), Directory(0409_XXX),...), where could I find those variable declarations?
schaps for president
schaps said:
Thanks for the link. I already thought about working with packages because it seems to be a better way to make "clean" ROMs, but I couldn't find enough information about how to extract/build packages in ROM.
I tried bepe's package tool on my own cooked ROM and I noticed that removed files were marked as missing in packages, and all the files I added weren't moved from dump directory. There is nothing surprising, but I wondered if adding/deleting manually files from ROM, causing "corrupted packages", can have any effect on final ROM. If not then why packaging information (like .dsm and .rgu files) are still present in ROM after all packages were merged? What exactly contains .dsm files, and how to create them for adding new packages?
Could someone tell me more about building packages, or tell me where I could find all the information I need.
Thanks
Click to expand...
Click to collapse
Hi Schaps,
you can have a look in this link:
http://forum.xda-developers.com/showthread.php?t=312985
it's a tool to re-build DSM file, which is better than just creat an empty .dsm file when making new package.
hope this help. It will be cool if your new tool support package.

CAB To OEM for use with Pandora Kitchen

Hey Guys,
Yet another sleeples night, looking at something that is probably simple and getting no where.
THE PROBLEM:
APPARENTLY you can change a CAB file into an OEM so that it can be used in Pandora Kitchen, the kitchen thread says its possible, but doesnt really give directions as to how.
Considering this is a new thing to, and there is no info about this on the site (that i can find)
Can someone please tell me step by step how to do this, and by step by step i mean:
1).................
2).................
3).................
4).................
etc etc
Thankyou for your help in advance
Here is a test package I made, but I keep getting a registry errors. Maybe someone can tell me what im doing wrong. I think it was better to keep all this in the kitchen thread personalley but as long as I can figure this out I dont really care.
Extract this file and take the "Remote Desktop" dir and drop it in the OEM dir in the Kitchen, and it shows up and all but when you go to build with teh green arrow I get a registry compiling error.
I also attached the original cab file that I started with when attempting to create this package.
Also attached is the cab manager that Matt uploaded, I am sure its the same as the one posted above but this has a readme and what not.
First Matt told me this:
Using this tool (many out there, this one's free and does a good job), extract the cab to a folder, then click on XML and grab the .rgu contents. Be wary of the format, as you have to delete any spaces between entries, such as "biteme" = dword : 00000001 should read "biteme"=dword:00000001.
Also, ensure that any path in this file (file system, not registry) is in this format: "\\Windows\\Startup" The second slash is required. Also, remove any references like %ce%\Windows, just change it to "\\Windows". You'll get the idea. If it ain't right, BuildOS will fail while creating the registry.
Move all the files into the top level in the folder you made, and remove all the extra crap like the inf file, and sometimes there's an xml file there too - note that you may need to convert to a provxml if the settings in it are required.
Use this site http://www.famkruithof.net/uuid/uuidgen (verion 4) to get a new GUID. I'd suggest coping a .rgu and options.xml file from another package since the file has to originate a certain way - and only use notepad to edit.
Just follow the example in the other packages - you'll find just about every way to do things in there.
As far as more details on using the program, just play with it. It's pretty simple
Then Bennec83 told me this:
what exactly are you trying to do? extract a CAB? if you are, using the file i uploaded earlier:
1)Launch CAB Manager.exe
2)on main screen extract CAB to a folder
3)click on the XML tab in top bar of the main window of CAB Manager.exe
4)in the window that opens, select Registry Keys
5)copy everything from the screen into WORDPAD
6)remove all the spaces
7)save the file as "UNICODE", once saved change the extension to somename.rgu
if you are trying to add an OEM to this kitchen i dont think you can just add them, please correct me if im wrong.
i hope this helps, if not tel me abit more about wat u want to do n ill try to help abit more!!
I understand the INF file as well, I just dont know how to add multiple directories as the destinations for a package, when a cab inf will tell you where there all suppost to go.
--Update--
I removed the NON-WORKING package, as it is now obsolete, see post below I got it working.
Ok then I understand the logic, and then the proper elaborated instructions can be pasted at the first or second topic of the Kitchen thread.
So I guess im doing something wrong with the reg, I have tried it a bunch of diffrent ways by comparing it to existing packages but I still cant seem to get it.
This quote by matt is what leads me to believe that.
Also, ensure that any path in this file (file system, not registry) is in this format: "\\Windows\\Startup" The second slash is required. Also, remove any references like %ce%\Windows, just change it to "\\Windows". You'll get the idea. If it ain't right, BuildOS will fail while creating the registry.
Ok I did it, I was reading an old post of bepe's and he said "add the reg to the end of the file (and the last line must be empty)" and so I hit enter and left the last line blank and BAM it worked so here is my first package contribution.
Maybe you can start adding these to the first post and we can start to make a collection for matt to add and test with his kitchen ?
Here is another one HTCustom 1.7 ready to go package for the kitchen
Damned if I can work it out!
Can anyone please package any of the following cabs?
Ive added JUVS HTC Home because the one included in the kitchen has the coloured icons not the original b&w.
Many many thanks in advance
I am still not able to completly figure out how to make a package where you must put files in diffrent locations other then the windows folder ? I would veyr much like to figure this part out.
I dont think he's having a go at you - he's just as frustrated as you and I with this. I would love to be cooking my own roms and with the wonderful pandoras kitchen I am getting alot further along but I guess I got a lot further to go!
well, by searching you can find how to do this!!!
click on this ftp://xda:[email protected]/Uploads/WIZARD/ROMS/Faria WM6 ROM Kitchen.pdf
this pdf file got what you need!!
under "Making a Package from a CAB file"
Look here bennec83, the comment i made was not meant to be a flame at all. If anything, it should have helped you alot with what you were trying to accomplish with the program and, making packages. I mean how much more direct can i be with helping you? As I said to you before, yes some of the chef can be a little vague with explaining the "How To's" of cooking or anything else, but that still didnt stop my progression of learning what i wanted to learn on here. What i explained in the CORE's Kitchen thread, was basically 80% self taught thru reading post & threads on xda, google searching, and trial and error. The other 20% was thru xda forum members input. I have a basic understainding of computers with no type of programming skills, and yet still, i was able to grasp the concept of cooking roms and making packages. Yes sometimes you have to put 2 and 2 together to figure things out on here. How I did it was I looked inside CORE's additional OEM packages and noticed that the files inside all the oem were extracted into the root of the folder's Dir...ok..so I would assume that you spent considerable amount of time trying to figure out that OEM package program(inside CORE's Kitchen its called Cab Analizer), then i would assume that you know that it extracts files within a .cab...ok... with that given....if you look back into an already made OEM package and many others, you'll notice that most ,if not all, carry an "initflashfile.txt"(which i figured out the correct data input) and many packages also carry .rgu & dsm files, so guess what....you need to find out what are .rgu & .dsm files, and there functions(if know no ones whats to tell you in a timely manor then, search or google, like i did!) Once you learn about those then, you'll notice that the OEM package program you have infront of give information about the reg keys of the cab (if available), then you start putting 2 & 2 together! You mention in your quotes that the programs sucks ass, well that program is a key part in making packages, If you can find a better one, please let me know!
NightmarE said:
well, by searching you can find how to do this!!!
click on this ftp://xda:[email protected]/Uploads/WIZARD/ROMS/Faria WM6 ROM Kitchen.pdf
this pdf file got what you need!!
under "Making a Package from a CAB file"
Click to expand...
Click to collapse
thankyou so much for this, i actually know what to do now i really appreciate this. you dnt know how much!!!
thanks alot
chrisnash said:
I dont think he's having a go at you - he's just as frustrated as you and I with this. I would love to be cooking my own roms and with the wonderful pandoras kitchen I am getting alot further along but I guess I got a lot further to go!
Click to expand...
Click to collapse
you are right that wasnt flamage!! i have been lookin so long in this forum i totally didnt think the answer would be in the wizard forum.
i have read and understood the instreuctions here:
ftp://ftp.xda-developers.com/Uploads/WIZARD/ROMS/Faria WM6 ROM Kitchen.pdf
i just wish i cud have found it earlier
perhaps I'm an utter fool, but I'd like some clarification from those of you who understand this, mind you I do have Faria's PDF:
1) For a .cab with purely registration files (ie, the Cingular WAP Settings) that contains a .inf when extracted, all I would need is the .rgu to put into BuildOS, right?
2) The .dsm file (and iniflashfiles) are only needed if the .cab is an actual application, and the .dsm file that you create can very well be empty (from what I understand from Faria's rom).
Maybe it's a lack of sleep, but I'm just not getting my head around this and am so far using the Install Cabs feature from HTCustom 1.7 after flashing.
I was trying to do the cignular settings and It seemed to me that all those reg entries appear like blank er something was wrong with them, I could be wrong but thats what it appeared like to me.
Bennec, ok then bro, my mistake, I guess I shouldnt of assumed that post was directed towards me, it just felt that way and I know you were frustrated.
Lets make this the best CAB to OEM Package thread ever and start a collection on the first post, also with all you have learned now, have you figured out a way to make a package with a cab like opera where the files must be placed in to diffrent dirs ?
where are you all stuck at?
to move files to a different directory you need to use initflashes. Keep in mind that this copies it to a different directory not actually moves it. The original file will still be in \\windows
If all you want is to add registry entries, add them to an existing packages registry entries. If you create a new package for the registy entries it should have a dsm file as well.
If you want the check box in buildos you will need to create an option.xml file as well.
bennec83 said:
you are right that wasnt flamage!! i have been lookin so long in this forum i totally didnt think the answer would be in the wizard forum.
i have read and understood the instreuctions here:
ftp://ftp.xda-developers.com/Uploads/WIZARD/ROMS/Faria WM6 ROM Kitchen.pdf
i just wish i cud have found it earlier
Click to expand...
Click to collapse
I'm glad you found the info you need, and are on your way to making progress. I apologize for not being able to assist more than I did, but I've got my hands full getting v3 ready for release.
Good luck and happy packaging!
NYD - long time, no see!
goto the CORE's kitchen thread. Read my posts and familiarize urself with a program called "compare it". Use this program to compare ur registry when the app is freshly installed, to the registry without the app installed, and pull the reg keys that way!
mattk_r said:
I'm glad you found the info you need, and are on your way to making progress. I apologize for not being able to assist more than I did, but I've got my hands full getting v3 ready for release.
Good luck and happy packaging!
NYD - long time, no see!
Click to expand...
Click to collapse
I understand you have lots to do on your kitchen, congrats BTW!! amazing kitchen, how is touch flo goin?
notyourdaddy said:
where are you all stuck at?
to move files to a different directory you need to use initflashes. Keep in mind that this copies it to a different directory not actually moves it. The original file will still be in \\windows
Click to expand...
Click to collapse
Hmmmmmm.
So its not possible to cook a Rom with custom apps in Progam Files only? I mean if they are always in \\windows too then its better to install the files than to cook it in the rom.
I have always believed you should add as little as possible to Rom:
From Tadzio's 'Want more Storage' Thread.
tadzio said:
...clip...
I modified mamaich's ImgfsTools so that they now create the smallest possible OS.nb from a 'dump' directory, and also write the partition table and MSFLSH header matching the new size.
...clip... make a ROM as small as at all possible, removing anything that users may not want, and turn every removed feature into a .cab that users can install to Storage...clip...
Cheers
Daniel
...clip...
Click to expand...
Click to collapse

Creating cab files for instalation on windows mobile

I will say i haven't searched for this one yet but i probably will a little later if i don't get any quick responses.
Now to my question. I'm trying to create a cab file that i can use to install some registry changes from the performance tweak thread. The file is specifically based on the memory tweak cab file that is available there but because i use the energy standard 6.5.x series roms there are a couple of tweaks that cause the phone to stop booting correctly. So i have extracted all the original files and modified the xml file appropriately. I've then recompressed them into a new cab file but if i try to install it i get an "not installed successfully error" so obviously i'm doing something wrong but i have no idea what. Anyone got any ideas?
What software did you use to make the cab file?
I actually first tried to create it with winace and that was the problem. Winace just creates the cab as a storage file and not as an installable cab file. I've since searched coz i didn't get a quick reponse and found quickcab. Did the trick nicely. I've tested it on my phone and i've now posted the finished file in the energy rom thread. You will find it here: http://forum.xda-developers.com/showpost.php?p=8078336&postcount=24318
At beginning I create .caps I used QuickCap (in the attachment). In the .zip for you is the Programm and guide only in german but with pictures. I think you can understand it, its very simple. Now i used the WinCE CapMgr, but you must pay for it, so I can't share.
Bonito77 said:
At beginning I create .caps I used QuickCap (in the attachment). In the .zip for you is the Programm and guide only in german but with pictures. I think you can understand it, its very simple. Now i used the WinCE CapMgr, but you must pay for it, so I can't share.
Click to expand...
Click to collapse
Quickcab did it for me and i will continue to use until it my needs exceed it but i have to say i figured out to use it in about 10 seconds (literally). Kudos to the developers for making a very intuitive and easy to use program. Not many out there that are that specialised and that easy to use.

Categories

Resources