Jump to content











Photo

WinFE Write Protect Application Multi Language Support


  • Please log in to reply
51 replies to this topic

#1 cramsden

cramsden

    Member

  • Members
  • 43 posts
  •  
    United Kingdom

Posted 15 December 2012 - 11:11 AM

Hi Guys,

 

I'm currently re-writing the write protect application in C++, I am reluctantly moving away from x86 assembly language as the support is just not there.  I have spent many hours reverse engineering applications to establish how certain functions work to allow me to re-write them in assembly language.  This worked fine, but now MS have released Windows 8 RT (ARM CPU), my x86 code base is at the best, useless.

 

There is as yet, no solution to image these RT devices until someone works out how to run unsigned desktop apps, no doubt will come in time, so in preparation for this, I'm now converting my write protect app to C++.  It's a totally new language to me but, I'm getting there with a little help from a good friend of mine.

 

I'm taking this opportunity to add multi language support to the app, at the moment I'm only looking at using languages which fall under the ANSI character set (so no wide character support just yet!).

 

Anyway, these are the languages which I am aiming to support:

 

Afrikaans

Dansk

Deutsch

English

Español

Français

Italiano

Nederlands

Norsk

Português

Suomi

Svenska

 

I will also consider the following if there is a demand:

 

Català

Euskal

Galicia

Icelandic

Indonesia

Kiswahili

Melayu

 

I have tried to use Google Translate, however, it was obvious that some words were not translated in the correct context, for example 'Driver' (meaning device driver) clearly came back as something to do with driving a car!

 

Therefore, I'm asking the community here at reboot.pro to help with the strings translations.

 

There is not too many strings, and at a guess, it would probably take less than an hour for someone with a good understanding of the English language to translate them into their native language.

 

The best that I can offer the translators is a credit within the 'About' dialog.

 

If anyone is willing to offer their services for this, I would be grateful if they could either reply here or PM me.  I will make the strings available within an Excel spreadsheet in due course.

 

Thanks,

 

Colin.



#2 vvurat

vvurat

    Frequent Member

  • Advanced user
  • 323 posts

Posted 15 December 2012 - 11:47 AM

i can help for Turkish language support. pm the Excel spreadsheet link.



#3 cramsden

cramsden

    Member

  • Members
  • 43 posts
  •  
    United Kingdom

Posted 15 December 2012 - 12:20 PM

@vvurat, if Turkish supports single byte per character, I will support it, if it uses the wide charater set, I can't support it just yet as my code is not set up for the wide character set.

 

I have not added all of the English text to the app yet, once this is complete I will make the spreadsheet available.

 

Thanks, Colin.



#4 Brito

Brito

    Platinum Member

  • .script developer
  • 10616 posts
  • Location:boot.wim
  • Interests:I'm just a quiet simple person with a very quiet simple life living one day at a time..
  •  
    European Union

Posted 15 December 2012 - 01:30 PM

Count with me for the translation to European Portuguese.



#5 pscEx

pscEx

    Platinum Member

  • Team Reboot
  • 12707 posts
  • Location:Korschenbroich, Germany
  • Interests:What somebody else cannot do.
  •  
    European Union

Posted 15 December 2012 - 01:54 PM

I'm ready for German

Peter

#6 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 15 December 2012 - 03:29 PM

And I can do Italian.

 

:cheers:

Wonko



#7 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 15 December 2012 - 03:36 PM

I don't understand the need to switch to a new language, just because you want to write code for a different CPU.

I would stick to Assembly, especially if the old CPU was a CISC and the new CPU is a RISC one.

Or switch to C, which is much closer to Assembly and therefore easier to use for you.

:cheers:

#8 cramsden

cramsden

    Member

  • Members
  • 43 posts
  •  
    United Kingdom

Posted 15 December 2012 - 04:22 PM

@MedEvil,

 

I use the MASM32 assembler in conjunction with and IDE called WinASM, which is a very good dev tool, which spits out a Windows PE x86 executable.

 

I know nothing about the ARM architecture, registers etc. and I don't even know if a set up exists which will assemble the code and produce a Win PE executable for ARM? To compound this, I use quite a lot of Win32 API calls for the MessageBoxes, Dialogs and other system calls, it's bad enough trying to get some of them to work under x86 let alone ARM, which I doubt has these API calls documented.

 

It was Windows RT which tipped the balance, as Visual Studio 2012 now allows me to produce both x86, x64 and ARM builds by simply changing the build platform, in theory, I get an identical output from the same code base.  I've been meaning to learn C++ for a while and it just seems like the right time.

 

All going well, I'll have something nearly ready by Christmas this year.

 

Thanks to the guys that have already offered their services, once I have all the strings that I will be using, I'll be in touch.

 

Thanks again, Colin.



#9 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 15 December 2012 - 05:57 PM

cramsden, the Win32 API calls should stay the same across all architectures. At least that's how it was in NT4.

:cheers:

#10 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 15 December 2012 - 07:01 PM

cramsden, the Win32 API calls should stay the same across all architectures. At least that's how it was in NT4.

:cheers:

You might need to update your knowledge :unsure:.

The actual WinRT is seemingly an API itself and you connect to it (which may or may not expose the "real" Win32 API underneath):

http://social.msdn.m...28-ce7a29a3876d

http://blogs.msdn.co...chitecture.aspx

 

:cheers:

Wonko



#11 cramsden

cramsden

    Member

  • Members
  • 43 posts
  •  
    United Kingdom

Posted 16 December 2012 - 11:19 AM

My understanding of Win RT is that the only apps that can be developed are the 'Metro' ones.

 

Metro apps are sandboxed and only limited access is provided for the Win32 API's, so there is little chance of my write protect tool working within Metro.

 

Desktop apps, I'm 100% sure have full access to the Win32 API's, otherwise tools such as diskpart would not work, however, Microsoft do not permit development for desktop apps.

 

There is a work around within Visual Studio 2012 that allows desktop apps to be compiled, but they will not run on Win RT as they are not signed, and considering that MS will not permit development of desktop apps, getting the write protect tool signed is not going to happen, therefore, the only solution is to wait for someone to come up with a hack that will permit unsigned code to be executed.

 

There is some quite talented guys working on this at the moment over at XDA Developers, once this is done, I should be able to run the write protect tool on Win RT, hopefully, without much tweaking.

 

I'm also working on a basic disk imaging tool, which will probably be the only solution, except for destructive chip-off, that will allow one of these Win RT devices to be forensically imaged.

 

Thanks,

 

Colin.



#12 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 16 December 2012 - 05:28 PM

One other point i find slightly confusing. What for do you want write protection in a embedded device?

It's not like one can run an external OS on them to recover data or something.
At leat not as long as one does not compile a new firmware for the device.

:cheers:

#13 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 16 December 2012 - 05:41 PM

@Medevil

Practical example:

http://www.forensicf...ewtopic/t=9981/

 

:cheers:

Wonko



#14 cramsden

cramsden

    Member

  • Members
  • 43 posts
  •  
    United Kingdom

Posted 16 December 2012 - 05:49 PM

I intend to use a bootable USB device installed with the WinRT Recovery Environment, tested and it does work, however, unsigned apps still won't run within PE/RE.

 

The write protect and imaging apps will be added to the boot.wim file along with any modifications to disable the signed code enforcement, even if it does not work, at least I've tried.

 

Just because it's an embedded device, does not mean criminals will not use it, at the end of the day it's just a computer, and where possible computers should be imaged in a manor which will protect the integrity of the data.

 

Now here is a project for the guys at reboot.pro, WinBuilder for Windows RT!! - I can provide the boot.wim/install.wim files and even an image of the bootable USB device if anyone is interested!!

 

Colin.


Edited by cramsden, 16 December 2012 - 05:58 PM.


#15 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 16 December 2012 - 06:53 PM

 I can provide the boot.wim/install.wim files and even an image of the bootable USB device if anyone is interested!!

Please clear the sense of can :

  1. I am capable of providing such an image
  2. I have been awarded a special license to re-distribute non-redistributable files
  3. both of the above

:whistling:

 

In any case is there a VM in which Windows RT can be run and tested? :dubbio:

Or would one need to buy a stupid Microsoft Surface (or any of the other makers stupid ARM based tablets) in order to test the environment? :unsure:

 

http://communities.v...m/thread/422040

http://msdn.microsof...s/jj572486.aspx

 

:cheers:

Wonko



#16 cramsden

cramsden

    Member

  • Members
  • 43 posts
  •  
    United Kingdom

Posted 16 December 2012 - 07:18 PM

I don't think it can be run inside a VM, but there again i've not even thought about VM's.

 

I bought a Surface RT to have a play with, it's not getting much use but it's the best tablet i've used, just a shame that it has code signing restrictions.



#17 Brito

Brito

    Platinum Member

  • .script developer
  • 10616 posts
  • Location:boot.wim
  • Interests:I'm just a quiet simple person with a very quiet simple life living one day at a time..
  •  
    European Union

Posted 16 December 2012 - 07:30 PM

Now here is a project for the guys at reboot.pro, WinBuilder for Windows RT!! - I can provide the boot.wim/install.wim files and even an image of the bootable USB device if anyone is interested!!

Well, the problem is getting access to the files legally. With the other Windows sources we can grab them from trial versions and MSDN but on this case it seems like something strictly for OEM distributors.

 

By the way, how did you get access to RT install files? They were included on the box that came with your tablet?

 

Thanks!



#18 cramsden

cramsden

    Member

  • Members
  • 43 posts
  •  
    United Kingdom

Posted 16 December 2012 - 07:38 PM

Yep, the files are provided on a recovery partition and users are encouraged to create recovery media, namely using a USB device.

 

Thanks,

 

Colin



#19 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 16 December 2012 - 07:44 PM

Well, the problem is getting access to the files legally. With the other Windows sources we can grab them from trial versions and MSDN but on this case it seems like something strictly for OEM distributors.

Yep :), but additionally, once these files are - somehow :ph34r: - obtained, it would be completely pointless if there is not a "test environment" of any kind.

From the little I have seen on the given MS site:

http://msdn.microsof...s/jj572486.aspx

the tools provided seem to require the deploying of the built image to an actual ARM device :dubbio:or however what the SDK provides is a "simulated" Windows RT environment, only good (if the use of the adjective "good" is allowed in the same sentence containing "Windows RT")  can be  for "high level" apps.

 

:cheers:

Wonko



#20 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7771 posts

Posted 16 December 2012 - 09:11 PM

Don't know about WinRT, but i used to have a VM for ARM in my CarPC, to run Navi software on top of WinCE.

:cheers:

#21 cramsden

cramsden

    Member

  • Members
  • 43 posts
  •  
    United Kingdom

Posted 16 December 2012 - 10:32 PM

To the guys that have offered their translation services, here is a link to a word doc which pretty much contains the strings that I will be using:

 

www.ramsdens.org.uk/WinFEMUI.docx

 

Once completed, please return to colin.ramsden@REMOVETHEUPPERCASETEXTbtinternet.com

 

Thanks very much,

 

Colin.


Edited by cramsden, 16 December 2012 - 10:33 PM.


#22 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 17 December 2012 - 01:45 PM

Hmmm :dubbio:

http://reboot.pro/to...rsion-and-more/

 

http://www.gnu.org/p...chments.en.html

 

 

By sending the file to your e-mail address, people might be disclosing their personal e-mail address to you, which is something that they may or may not wish to do.

 

Would it be OK to simply attach the file or upload it to a file sharing service and posting the link to it?

 

:cheers:

Wonko

 

P.S.: Attached the translation

I have some perplexities on these (which however I translated alright):

 

 

This application supports a MAXIMUM of 1000 disks.

The selected disk exceeds this number.

Really? :w00t:

I think I will use this to fuel for several parsecs worth of travel the Heart of Gold Improbability Drive. :unsure:

 

This error should not have occurred at this early stage.

What do you mean?

Like it is expected that this error would occur but only at a later stage? :dubbio:

I interpreted it as a form of rant, and translated it to:

 

Questo errore non sarebbe dovuto accadere in questa fase iniziale, mannaggia.

which translates back to:

 

 

This error should not have occurred at this early stage, darn it.

 

Attached Files



#23 joakim

joakim

    Silver Member

  • Team Reboot
  • 912 posts
  • Location:Bergen
  •  
    Norway

Posted 17 December 2012 - 05:23 PM

Just a link with some good information about the target and how it works; http://blogs.msdn.co...chitecture.aspx

 

Would be nice to know how one easily can set up a test environment for this.



#24 joakim

joakim

    Silver Member

  • Team Reboot
  • 912 posts
  • Location:Bergen
  •  
    Norway

Posted 17 December 2012 - 05:35 PM

Would be nice to know how one easily can set up a test environment for this.

 

I guess the answer was provided inside the link :) :

 


Testing

You might be wondering how we are testing WOA in our labs. For x86/64 we run massive labs (thousands of machines, real and virtualized) and highly automated test runs for every single daily build. WOA required us to reimagine our own lab and test processes. For testing x86/64, it is simple to just order thousands of rack-mounted servers, or even virtualize them; for ARM, there are no standard rack-mounted servers that can run WOA. Since we’re doing highly integrated hardware/firmware/software development, and virtualization is not helpful, we had to devise our own approach.

We consolidated hundreds of ARM development boards along with a custom I/O board into a rack assembly connected to our testing infrastructure. Our original design focused on density supporting 300 ARM devices in one rack, but we ultimately preferred the diagnostics and availability of a custom I/O board in the 1U setup.

We designed our own 1U chassis that fits into a standard server rack. Either a full form-factor device or just the motherboard can be dropped into this chassis. Once fully assembled, the SoC board in conjunction with the IO board and chassis looks, feels and operates like a standard rack mount PC and fits right in with existing lab infrastructure.

Each 42U rack holds 32 WOA chassis plus network switches, debug host PC, and USB hubs. By March we will have over 100 fully populated racks for WOA testing.



#25 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 17 December 2012 - 05:59 PM

Just a link with some good information about the target and how it works; http://blogs.msdn.co...chitecture.aspx

 

Would be nice to know how one easily can set up a test environment for this.

Yeah, very interesting link, completely UNlike the one I posted in post #10 :whistling::

http://reboot.pro/to...pport/?p=164341

 

:cheers:

Wonko






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users