Pages: 1 ... 7 8 [9] 10
Author Topic: Open Source Checker for ME7...  (Read 94102 times)
360trev
Full Member
***

Karma: +66/-2
Offline Offline

Posts: 235


« Reply #120 on: January 05, 2013, 06:44:57 AM »

nyet,

In my quest to get proper signature matching working i've started to re-write Andy's ME7 IDA Plug-in, close to having something now that could be used to match signatures without recompiling any code. See the IDA Plugin thread here;
http://nefariousmotorsports.com/forum/index.php?topic=35.msg29602#new

This got me thinking though, and the best way to do signatures is via (you've guessed it) an external config file. This way it can also identify map locations too so later we can integrate all of these functions into an ME7 'busybox' style tool which can also do map editing, reversing of functions, etc. fully self contained from the xterm. Its ambitious but it wouldn't be too much of a stretch to get this working brilliantly for multiple purposes.

T
Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #121 on: January 05, 2013, 12:27:28 PM »

Yea i've actually already started to put the matching stuff into a separate module but it isn't really ready for prime time.

I was hoping to get a few more matching signatures first so i can make sure the module can handle a variety of different things... in particular, it needs to be able to handle extracting a bunch of different kinds of information from the patterns, eg

xxx LL LL HH HH
and
xxx LL LL xx xx HH HH
and
xxx LL LL xx xx Sx etc.

Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
360trev
Full Member
***

Karma: +66/-2
Offline Offline

Posts: 235


« Reply #122 on: January 05, 2013, 03:37:58 PM »

nyet,

Watch this space on masking  Grin
 
I have been experimenting and you can make 'automatic' masks based on a big instruction table being defined of all valid instructions with all relative addresses being masked in the table so every time it identifies a menomic it knows what mask to apply by looking it up in the table! this means any byte sig will work with it unmodified as it knows where to apply masks automatically!
Logged
prj
Hero Member
*****

Karma: +915/-426
Offline Offline

Posts: 5834


« Reply #123 on: January 05, 2013, 05:33:39 PM »

I have been experimenting and you can make 'automatic' masks based on a big instruction table being defined of all valid instructions with all relative addresses being masked in the table so every time it identifies a menomic it knows what mask to apply by looking it up in the table! this means any byte sig will work with it unmodified as it knows where to apply masks automatically!

I wanted to do this a long time ago. Keep going Wink
Logged

PM's will not be answered, so don't even try.
Log your car properly.
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #124 on: January 05, 2013, 09:38:24 PM »

So two things are holding me back right now: detecting CRC offsets in those allroad files (AA, R, S) and the ferrari bin

Also, any opinions on detecting the position of the EPK, software/hardware revisions, etc? should i just search for known strings?

eg:

EPK - sesarch for ME7.x
PartNUmber - search for 551 (wont work for ferrari)
EngineId - search for 2.7l (wont work for ferrari)
SWversion - ?? just offset from EngineID?
HWnumber/SWnumber - search for 1037

obviously a more generalizable way is preferable... or is it just not important?

Also, at this point it would be really great to get a few testers on board, preferably people who can use git and know how to compile... I dont think im ready to post .exes...

or should i?
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
ddillenger
Hero Member
*****

Karma: +637/-21
Offline Offline

Posts: 5640


« Reply #125 on: January 05, 2013, 09:48:36 PM »

I'm all for testing, but my knowledge on compiling is next to nothing right now. If you post an .exe, I will put every bin I have, or can find through it and post the ones that don't work, along with a summary of those that do.

I wish I could do more, you guys are really moving on this.
Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #126 on: January 05, 2013, 11:40:52 PM »

v0.0.4

WARNING! BACK UP ALL BINARIES BEFORE USING THIS  Smiley

http://nyet.org/cars/files/me7sum-v0.0.4.zip

ETA: v0.0.3 had a bad bug. please dload v0.0.4 ..
« Last Edit: January 06, 2013, 11:55:07 PM by nyet » Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
prj
Hero Member
*****

Karma: +915/-426
Offline Offline

Posts: 5834


« Reply #127 on: January 06, 2013, 07:27:18 AM »

Why are SW version, Engine ID and so on important for calculating a checksum?
Logged

PM's will not be answered, so don't even try.
Log your car properly.
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #128 on: January 06, 2013, 12:35:11 PM »

If i am going to make a database of exception patterns, and i can more reliably and generally find the ids/versions than I can find, say CRC offsets, then I can use the result of that pattern match to look up the id in a database to tell me either what pattern to use for that id, or what hardcoded offsets to use.

Also, if i need to make a whitelist or a blacklist.
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #129 on: January 10, 2013, 10:01:21 AM »

And while we're working on ME7.1.1, anybody want to help take a stab at me7.5? It is pretty similar to 7.1.1 .. i can find the crc blocks but not the crc value offsets.
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #130 on: January 21, 2013, 08:16:50 PM »

based on the files posted here:

http://nefariousmotorsports.com/forum/index.php?topic=1002.0

There appear to be two differences that are new to me

there is a large block at 16a8a-16b09 (128 bytes). i guess thats the RSA stuff he talks about

there is a LL HH pair at aa46e and aa472 that is changed... must be a crc location, but its different from ME7.1 because its split into two short words rather than contiguous LLHH

Unfortunately, i'd need a file that is changed in more places to see if there are patterns (i.e more than one CRC is "wrong")

PLEASE, i'd love to get more help Smiley

either way its a dead end until somebody has access to a version of winols (or checksum fixer) that can do BEL and can help me .. basically, change a bunch more stuff and see what the checksum routines try to fix.
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
ddillenger
Hero Member
*****

Karma: +637/-21
Offline Offline

Posts: 5640


« Reply #131 on: January 21, 2013, 08:18:10 PM »

Post up whatever BEL file you want, I'll change the sh@# out of it and post both versions before and after checksum correction.
Logged

Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience!

Email/Google chat:
DDillenger84(at)gmail(dot)com

Email>PM
AARDQ
Sr. Member
****

Karma: +11/-0
Offline Offline

Posts: 338


« Reply #132 on: January 21, 2013, 08:34:33 PM »

based on the files posted here:

http://nefariousmotorsports.com/forum/index.php?topic=1002.0

There appear to be two differences that are new to me

there is a large block at 16a8a-16b09 (128 bytes). i guess thats the RSA stuff he talks about

there is a LL HH pair at aa46e and aa472 that is changed... must be a crc location, but its different from ME7.1 because its split into two short words rather than contiguous LLHH

Unfortunately, i'd need a file that is changed in more places to see if there are patterns (i.e more than one CRC is "wrong")

PLEASE, i'd love to get more help Smiley

either way its a dead end until somebody has access to a version of winols (or checksum fixer) that can do BEL and can help me .. basically, change a bunch more stuff and see what the checksum routines try to fix.

Have a go at this.  It's fairly significantly changed from the CS corrected file I run.  Let me know if you need still more changes.
« Last Edit: January 21, 2013, 08:41:40 PM by AARDQ » Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12233


WWW
« Reply #133 on: January 21, 2013, 08:48:44 PM »

These are the blocks that suspect are checked by crc (S box though, not sure its same R box, ill have to check)

 0) Adr: 0x018446-0x018455
 1) Adr: 0x010002-0x013FFE
 2) Adr: 0x014382-0x017F4E
 3) Adr: 0x018192-0x01FBDC
 4) Adr: 0x026A00-0x02FFFC

changing one byte in each one independently should be sufficient (i hope) to figure out where the resulting crc changes are...
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
AARDQ
Sr. Member
****

Karma: +11/-0
Offline Offline

Posts: 338


« Reply #134 on: January 21, 2013, 08:56:57 PM »

Here's range No. 4. I hope, anyway.
Logged
Pages: 1 ... 7 8 [9] 10
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.045 seconds with 17 queries. (Pretty URLs adds 0s, 0q)