Checksum/CRC checker/corrector for Motronic ME7.1 firmware images. ME7.1.1 and ME7.5 support is still in testing, but should more or less work. It also has known bugs: be sure to check all output with me7check. Click URL below for latest binary release:
C Other
#8 Compare This branch is 235 commits ahead of 360trev:master.
Permalink
Failed to load latest commit information.
bins add 1.8t HN Nov 1, 2014
inifile get_prop and find_prop do indeed return const chars; they are interna… Jan 5, 2013
mpir For now, just add precompiled mpir.lib Sep 30, 2014
os wow WIN32 sucks. _snprintf does not null terminate on overflow. Assho… Oct 4, 2014
.gitignore Roll in ME7Check, update README Feb 28, 2013
GNUmakefile Initial pass at RSA support - depends on GNU GMP library, so no MS VS… Sep 29, 2014
ME7Check.exe Roll in ME7Check, update README Feb 28, 2013
ME7Check_linux Add linux bin Oct 9, 2014
README Update readme with new bug info May 17, 2015
README.orig Add new readme and sample.ini file Jan 4, 2013
build.cmd ugh. forgot --tags in nmake build Jan 27, 2013
crc32.c Detect tuner modified CRC tables Oct 13, 2014
crc32.h Detect tuner modified CRC tables Oct 13, 2014
debug.h Add detection of RSA offsets (no checking or correcting yet) Sep 28, 2014
helper.pl Add way to use multiple -s to abort early. Search for CRC using ASM. … Oct 14, 2014
inifile_prop.c Get rid of a few more debug messages that clutter things Sep 17, 2014
inifile_prop.h Move some of the dump stuff into a ME7 common "[info]" area in the in… Jan 5, 2013
makefile For now, just add precompiled mpir.lib Sep 30, 2014
makefile.common Prepare for getting version from git Jan 6, 2013
md5.c Initial pass at RSA support - depends on GNU GMP library, so no MS VS… Sep 29, 2014
md5.h Initial pass at RSA support - depends on GNU GMP library, so no MS VS… Sep 29, 2014
me7sum.c Flag unexpected RSA unpad errors as uncorrectable, add some commented… Dec 31, 2014
mestuff.txt Update mestuff.txt Jan 2, 2013
rsa.c Properly align exported mpz_ts with leading zeros Oct 2, 2014
rsa.h split out prime generation from code generation, don't correct if key… Sep 30, 2014
sample.ini Add support for mini-multipoint descriptor that describes 0x24000-26x… Mar 8, 2013
str.c Proper va_copy handling Sep 24, 2014
str.h MS VC support for str.[ch] Sep 24, 2014
test.sh Add way to use multiple -s to abort early. Search for CRC using ASM. … Oct 14, 2014
utils.c Fail more elegantly if can't find file Oct 15, 2014
utils.h wow WIN32 sucks. _snprintf does not null terminate on overflow. Assho… Oct 4, 2014
vars.mk Add ROMSYS support Sep 25, 2014

README

This project is under BSD open source license. Its on the most unrestrictive
freeware license possible. No warranty implied or given.

It is a tool written in C for management of Bosch ME7.1 firmware dumps.

The latest binary releases are always available here:
http://nyetwurk.github.com/ME7Sum/

RUNNING:
--------

To check image.bin:

  ME7Check image.bin
  me7sum image.bin

To output corrected checksums:

  me7sum image.bin out.bin

*********************************
** THIS PROGRAM HAS KNOWN BUGS **
*********************************

Note that if me7sum cannot completely detect checksum/CRC locations correctly,
it will not output a file!

** Always use me7sum on a original version of your bin first to make sure it is
   compatible! **

** Make sure to check all corrected bins with ME7Check.exe before flashing
   them! **

KNOWN ISSUES:
-------------
** DO NOT USE ON TUNER MODIFIED BINARIES! **

Many tuners modify the CRC/Checksum algorithms to discourage modification
of their tunes. ME7Sum most likely will not detect such modifications.

ME7Check may detect such modifications, but there is no way for it to
be 100% sure.

Never use ME7Sum on a file that you your self did not write.

** Some files may require ME7Sum to be run on them iteratively **

https://github.com/nyetwurk/ME7Sum/issues/7

If ME7Check fails on a ME7Sum fixed file, please post or email me the file. You
may be able to get all the checksums properly fixed by re-running ME7Sum on its
own outputted file.

** RSA signature support is experimental, and may have bugs! **

ME7Check should not fail on RSA corrected bins. If it does, please email the
binary to me or post on Nefmoto.

DO NOT FLASH ANY BINS without a backup ECU or a way to restore a known good
bin or you may be stranded!

It should generally autodetect checksum/CRC blocks, but is known not to work
on non VAG Motronic bins, eg:

ferrari360.bin

ME7.5 is also currently unsupported but might work.

BUILDING:
---------
Under unix or cygwin, "make" should work.

Under Windows MSVSS/nmake, type "build clean" then "build"

CONTRIBUTING:
-------------
Feel free to contribute to the project!

nyet's ME7Sum:
http://nefariousmotorsports.com/forum/index.php?topic=3347.0title=
https://github.com/nyetwurk/ME7Sum/

360trev's ME7Sum:
http://nefariousmotorsports.com/forum/index.php?topic=2993.0title=
https://github.com/360trev/ME7Sum/