nlitsme / eimgfs

Tool for editting Windows CE/Mobile firmware images.
MIT License
66 stars 11 forks source link

Instruction on how to build on Windows? #3

Open Darkkey opened 4 years ago

Darkkey commented 4 years ago

Hello. Could you please provide a little more details on how to build eimgfs on Windows with modern PSDK? I guess I will need mingw + openssl/boost, right? Because Makefile.win32 seems not to be in mssdk nmake format. Thanks in advance.

nlitsme commented 4 years ago

It is in gnumake format, i think i installed that using cygwin. most recently i built eimgfs on windows april 2019, using visual studio 14.0

Darkkey commented 4 years ago

Thank you for the answer, I think I'm doing something wrong. What have I done:

  1. Installed boost (https://netcologne.dl.sourceforge.net/project/boost/boost-binaries/1.72.0/boost_1_72_0-msvc-14.2-32.exe) to C:\local\boost32

  2. Installed openssl 1.11 (followed this guide https://stackoverflow.com/questions/45494630/how-to-build-openssl-on-windows-with-visual-studio-2017), build for Win32 in C:\local\openssl32

  3. Fixed Makefile.win32 (changed paths to openssl32 and boost32), changed libeay32.lib to libcrypto.lib

  4. Installed Cygwin64, cygwin make and put in in PATH env variable.

  5. Run make -f Makefile.win32 in the project from VCC x86_32 command line. It failed with LINK : fatal error LNK1104: cannot open file 'libboost_date_time-vc141-mt-s-x32-1_72.lib', so I've copied libboost_date_time-vc142-mt-s-x32-1_72.lib from C:\local\boost32\lib32-msvc-14.2 to the project directory as libboost_date_time-vc141-mt-s-x32-1_72.lib. Now it builded without problems.

When I run eimgfs.exe <IMAGE> -list the only output I got is:

map=190, off=00000800
EXCEPTION: b000ff before start of map

Any ideas how is it happened? Is my build process incorrect?

nlitsme commented 4 years ago

Your binary seems fine.

This message means that it did find a 'B000FF' encoded image, but it tried to use a memory offset not present in the B000FF image. I would need to have a look at your specific image to be able to tell why that happens.

with 'map' i meant: the mapping of offsets to memory blocks.