ES - 1st to 4th Gen (1990-2006) Forum for all 1990 - 2006 ES300 and ES330 models. ES250 topics go here as well.

DIY: Immobilizer Hacking for Lost Keys or Swapped ECU

Old 03-07-16, 05:57 PM
  #1  
speedkar9
Lexus Champion
Thread Starter
 
speedkar9's Avatar
 
Join Date: Aug 2012
Location: Toronto, Canada
Posts: 1,729
Likes: 0
Received 118 Likes on 89 Posts
Default DIY: Immobilizer Hacking for Lost Keys or Swapped ECU

Here's how to reprogram your car's engine immobilizer to program new keys in the invent of lost keys or a swapped ECU.

DIY Video:

Disclaimer:
The engine immobilizer is a security device. Use the information provided here in a legal and appropriate manner.

PDF Download
A full PDF download of this writeup can be found from this cloud storage location:
https://mega.nz/#!q8ojjSoQ

Modern Toyota’s use a key with an embedded RFID chip as an added means of theft prevention. The key is read by the computer and if it matches, it will enable all systems to start the car. If the key does not match, the car will only crank but not start.

This engine immobilizer system presents a barrier to many owners when it comes time to swap out a bad ECU, or if you’ve lost all the master keys and can't program new keys.
While taking the car to a dealership or locksmith is an option, it could get expensive because you are at their mercy. What follows is a cheaper method you can do yourself to “virginize” your ECU to accept new keys without a master key.

Here’s an overview on how the immobilizer system works on older Toyota and Lexus vehicles.
Name:  Slide11.jpg
Views: 40404
Size:  37.9 KB

When you insert the key, a coil near the ignition ring picks up the RFID signal from your key and sends it to an amplifier. The amplifier then decrypts it and sends it to the ECU. Inside the ECU is a 93C56 EEPROM chip (IC900) that stores the key values. If the key code matches the stored values, the engine will start.

On newer Toyota and Lexus vehicles, the transponder ECU is a separate unit and it’s housed under the dashboard.

Name:  Slide21.jpg
Views: 34326
Size:  41.0 KB

The reason for separating the Transponder ECU with the EEPROM storing the keys is that in the invent of lost keys, it would be cheaper for a dealership to replace the Transponder ECU than the Engine Control Unit. However its location under the dash means you will have to remove the entire dash pad. The procedure for reprogramming is similar, however you will have to short two wires on the OBDII port to perform a hand-shaking procedure between the ECUs to program new keys.

Here’s what the immobilizer system components look like:

Name:  IMG_5678.jpg
Views: 46377
Size:  180.8 KB

Here’s a closer look inside the transponder amplifier.

Name:  IMG_5715.jpg
Views: 33142
Size:  107.3 KB

To demonstrate the immobilizer reprogram, I’ll be swapping ECU’s on my 1999 Toyota Solara with one from a 2001. Therefore my current keys won’t match what is in the new ECU.

Name:  IMG_5703.jpg
Views: 31965
Size:  175.4 KB

To be safe, pull the battery so you don’t cause any harm when unplugging the ECU.

Name:  IMG_5793.jpg
Views: 33041
Size:  211.2 KB

In most cars the ECU is located behind the glove box.

Name:  IMG_5840.jpg
Views: 31970
Size:  136.2 KB

Here’s the ECU behind the glove box. It’s got 5 electrical connectors on it and is held in by two 10 mm nuts on the brackets.

Name:  IMG_5813.jpg
Views: 34202
Size:  163.3 KB

When you open up the ECU, we’re going to be looking for IC900.

Name:  IMG_5706.jpg
Views: 32833
Size:  193.9 KB

It’s a 93C56 EEPROM chip, surface mounted with 8 pins.

Name:  IMG_5709.jpg
Views: 32768
Size:  145.0 KB

This is where you need to get a programmer to connect the chip to your PC. You can either buy a USB programmer from eBay or make your own to communicate to the serial port. In my case, I made my own, using the circuit below.

Name:  programmer_mod_1.jpg
Views: 33676
Size:  64.0 KB

The components required are fairly basic, three 4.7K ohm resistors, three 5V zener diodes, and a computer with a serial port. To connect the 8-pin EEPROM chip to the computer you'll either have to solder hook-up wires to the pins or get a Test Clip for onboard programming.

Note: This is the same circuit for programming the odometer’s EEPROM.
http://www.toyotanation.com/forum/10...ogramming.html

Using a test clip helped a lot during prototyping.

Name:  IMG_5729.jpg
Views: 31768
Size:  162.9 KB

However the clip doesn’t have a good grip on the SMD chip so I chose to solder wires directly to the leads of the chip.

Name:  IMG_5744.jpg
Views: 33871
Size:  195.6 KB

If you do have problems reading and writing from the chip, you have to short the crystal on the board.

Here’s the setup, with the computer connected to the ECU via the EEPROM circuit on a prototype breadboard.

Name:  IMG_5748.jpg
Views: 33120
Size:  259.1 KB

PonyProg, a free serial device programmer was the software used to read information from the serial port and "dump" the EEPROM's contents. First go to setup under options.

Name:  IMG_5772.jpg
Views: 31727
Size:  133.9 KB

Select SI Prog I/O, COM 1 and then press Probe to check that the reader is communicating to the software.

Name:  IMG_5773.jpg
Views: 32090
Size:  157.2 KB

Then select the device as 93C56 MicroWire EEPROM.

Name:  IMG_5774.jpg
Views: 31883
Size:  146.2 KB

Click Read Device to dump the EEPROM’s contents.

Name:  IMG_5775.jpg
Views: 31605
Size:  137.9 KB

The content should appear as an array of HEX characters. Each key has a unique 8 digit HEX code. There are also bits to indicate key count, enable programming mode and valet lockout.

Name:  IMG_5776.jpg
Views: 33160
Size:  204.7 KB

Last edited by speedkar9; 03-30-19 at 07:29 AM.
Old 03-07-16, 06:01 PM
  #2  
speedkar9
Lexus Champion
Thread Starter
 
speedkar9's Avatar
 
Join Date: Aug 2012
Location: Toronto, Canada
Posts: 1,729
Likes: 0
Received 118 Likes on 89 Posts
Default

Here’s a breakdown of an EEPROM dump. After a lot of experimentation, it was observed that there are three distinct keys. Each key is an 8 digit HEX value, repeated three times. It is split across two groups of four, but there is symmetry in their positioning within the dump.

Name:  Slide1.jpg
Views: 31193
Size:  114.7 KB

With 8 digits and 16 HEX characters, there are 4.2 billion different key combinations. For the example above, here is the breakdown of key codes:

Name:  Slide2.jpg
Views: 29503
Size:  35.6 KB

Looking on the right side of the EEPROM dump, there are three noteworthy HEX clusters.

Name:  Slide3.jpg
Views: 29688
Size:  114.3 KB

The Valet Lockout should be kept as is, FB DF 5A 69. Erasing this will only allow you to program one Valet key, and then you’re stuck.

The virginize keys are values that are “10” in the original dump but must be changed to “00” to tell the computer to go into auto-programming mode.

The Key counter is a number count, in inverse HEX, of how many keys are currently stored in the ECU. This must be zeroed as well.

Name:  Slide4.jpg
Views: 29240
Size:  34.8 KB

Here’s a look-up table to invert HEX. It’s pretty much 0 to F and F to 0 backward.
Name:  hex%20decoding_1.jpg
Views: 29337
Size:  29.0 KB

All other characters in the EEPROM dump must be changed to 00 to “virginize” the chip.

Name:  Slide5.jpg
Views: 29994
Size:  104.8 KB

In PonyProg, to do this, click Edit Buffer Enabled.

Name:  IMG_5777.jpg
Views: 29967
Size:  192.2 KB

Then click on any HEX character to edit that bit.

Name:  IMG_5778.jpg
Views: 29993
Size:  206.3 KB

Everything is zeroed (except for FB DF 5A 69), and you have your virgin dump:

Name:  IMG_5779.jpg
Views: 30063
Size:  202.7 KB
You can then write to the chip:

Name:  IMG_5780.jpg
Views: 29831
Size:  198.4 KB

Name:  IMG_5781.jpg
Views: 29670
Size:  224.2 KB

And then proceed to replace the ECU back in the car.

Name:  IMG_5817.jpg
Views: 36504
Size:  182.1 KB

Key Programming:

When reconnected to the car, the ECU will be in auto-programming mode and will accept new keys as per the procedure below:
1. Briefly insert any key into ignition lock cylinder and remove immediately. The security light should illuminate and remain on.
2. Insert the first transponder key into ignition lock cylinder for registration DO NOT TURN ON. The Security light may blink indicating it has accepted the key. After 3-5 seconds remove the first key from the ignition. Security light should remain on indicating you're still in programming mode.
3. Insert the second transponder key into ignition lock cylinder for registration DO NOT TURN ON. The Security light may blink indicating it has accepted the key. After 3-5 seconds remove the second key from ignition. Security light should remain on indicating you're still in programming mode.
4. Insert third transponder key into ignition lock cylinder for registration DO NOT TURN ON. After security light goes off remove third key from ignition. The security light should extinguish and then commence to blink regularly.
5. Wait 30 seconds for the programming cycle and programming mode to close.
The first two keys are internally (inside the ECU) designated as MASTER keys and the 3rd key inserted will be internally designated as the VALET key.

Name:  IMG_5820.jpg
Views: 30739
Size:  185.1 KB

As a test, when you insert a MASTER key, the security light should stop blinking right away. If you insert a VALET key, the security light will remain solid for 2 seconds and then go out. If the security light does not stop blinking, that key is not programmed to the car.

This procedure should work on many Toyota and Lexus vehicles from the 1990's to early 2000's. Newer Toyota/Lexus/Scion cars have a separate transponder ECU under the dashboard instead of having the EEPROM store key info in the ECU. The procedure is similar, though a hand-shaking procedure must be performed between the Transponder ECU and Engine Control Unit before key programming by shorting two wires on the OBDII port for 30 minutes.

Reference material:

http://qcwo.com/technicaldomain/work...ginizing-files
http://www.spyderchat.com/forums/sho...mmobilizer-Fix
http://www.locksmithcharley.com/toyotapostflash.pdf
The following 5 users liked this post by speedkar9:
BMeek (05-19-18), cancruiser (04-17-19), cnuzum (05-13-21), Rriley77 (07-23-23), wmj259 (03-25-18)
Old 03-07-16, 06:50 PM
  #3  
LeX2K
Lexus Champion
 
LeX2K's Avatar
 
Join Date: Sep 2010
Location: Alberta
Posts: 19,302
Received 2,682 Likes on 2,272 Posts
Default

This is really awesome stuff I love seeing this type of hacking plus it could save someone a whole lot of money. If it was me I'd try and find a way to socket that ROM in case I needed to program it again.

I didn't know the valet key caused the security light to act differently learned something new.
Old 03-08-16, 10:39 AM
  #4  
808mcv20l
Pole Position
 
808mcv20l's Avatar
 
Join Date: Jun 2015
Location: Hawaii
Posts: 356
Likes: 0
Received 2 Likes on 2 Posts
Default

still amazes me how you are able to figure these things out, great job.
The following users liked this post:
Rriley77 (07-23-23)
Old 03-18-16, 05:40 PM
  #5  
speedkar9
Lexus Champion
Thread Starter
 
speedkar9's Avatar
 
Join Date: Aug 2012
Location: Toronto, Canada
Posts: 1,729
Likes: 0
Received 118 Likes on 89 Posts
Default

Originally Posted by Lexus2000
This is really awesome stuff I love seeing this type of hacking plus it could save someone a whole lot of money. If it was me I'd try and find a way to socket that ROM in case I needed to program it again.

I didn't know the valet key caused the security light to act differently learned something new.
Thanks for the feedback. Its cool stuff, and I enjoyed doing this project, especially given how helpful it would be to many potential used car buyers who buy with just a valet key.

I believe the owners manual (or service manual?) tells you about distinguishing valet and master keys through the security light. Valet keys can start the car, but it won't allow you to program new key fobs, new keys or open the glove box and trunk.

Since the IC900 chip is a surface mount EEPROM chip you won't be able to easily socket it the way I did the odometer chip:

http://www.toyotanation.com/forum/10...ogramming.html



Originally Posted by 808mcv20l
still amazes me how you are able to figure these things out, great job.
Thanks. Those last few links in the references really helped me a lot to understand how the chip is programmed. Locksmiths virginize Immobilizer chips all the time but don't reveal their secrets and want you to buy the virgin dumps. I got a few chips and a used ECU with some keys from the junkyard and did a bunch of experimenting with the HEX values in the dump until I found out what each set of characters translated to. A lot of trial and error but having the odometer reprogramming experience behind me made it a lot easier to tread through unknown territory.
The following 2 users liked this post by speedkar9:
Rriley77 (07-23-23), wmj259 (03-25-18)
Old 03-19-16, 07:11 AM
  #6  
TOLex168
Driver School Candidate
 
TOLex168's Avatar
 
Join Date: Apr 2009
Location: MD/ON
Posts: 43
Likes: 0
Received 1 Like on 1 Post
Default

Wow, that is good stuff to know. Just a though, Is there a way to read new key's code from the transponder? If you could, then edit dump hex from ic900 and program back into the original ic900. This way, you could still use the original ecu. It is much easier to remove it, read it, reprogram it, and put it back. May be reprogram blank/0 key code so that whatever keys you first insert will auto program and remember in the ic900.

Way back, i used to do this with computer bios chip and others telecom circuit board. It could be done with an ic that has over 100 pins. But, it is very painful to understand the dump hex.
Old 11-19-16, 09:56 AM
  #7  
tomf
Lead Lap
 
tomf's Avatar
 
Join Date: Feb 2010
Location: Nebraska
Posts: 544
Likes: 0
Received 21 Likes on 20 Posts
Default

Nice write-up. This is good stuff.
Old 05-19-18, 12:03 PM
  #8  
BMeek
Pit Crew
 
BMeek's Avatar
 
Join Date: May 2018
Location: California
Posts: 129
Received 28 Likes on 20 Posts
Default missing a (3ES) Master Key...

Wow. This is a great write-up, speedkar9! Although I'm generally comfortable with this sort of technology, I'm not really up to a project that may involve soldering leads to a surface-mount eprom... Besides, my laptop doesn't have a serial port :-).

Nonetheless, I recently bought a 1998 Lexus ES 300 for cheap that only came with one working Valet Key to start the engine and one working remote/key fob... It also came with a second key ring containing: one cut Master Key that cranks but doesn't start the engine, a non-working remote/key fob, and an aluminum key code tag that I assume was used to cut said Master Key.

All of the above appear to be originals or OEM replacements. I assume that the Master key's transponder is not registered because all the original master keys had been lost (and this complicate$ thing$).

As you might gather from the 20-year-old car I'm talking about, I'm rather scared about the cost of enlisting a Lexus dealer to sort this out :-). About what should I expect to pay to have a competent locksmith flash my ECU and get all of these keys/remotes functional?
Old 06-20-18, 12:20 AM
  #9  
muhula
Driver School Candidate
 
muhula's Avatar
 
Join Date: Nov 2003
Location: Washington
Posts: 11
Likes: 0
Received 0 Likes on 0 Posts
Default

Would it be possible to use a non-Lexus-key RFID? The fob is so large and bulky, I wish there was a way to have a tiny passive RFID only fob. Or even a rfid ring that you can wear.
Old 06-21-18, 03:31 PM
  #10  
wmj259
Intermediate
 
wmj259's Avatar
 
Join Date: Jan 2016
Location: Maryland
Posts: 288
Received 29 Likes on 29 Posts
Default

I was wondering if after switching out the ECM, if you could just use Techstream to reprogram the keys? If not my second option would be to use a Arduino and figure out how to attach to the chip.
I saw that in your method you use zeno diodes and resistors, can you link to the ones that you used or even a parts list.
Old 06-30-18, 12:51 PM
  #11  
Mauser
Pit Crew
 
Mauser's Avatar
 
Join Date: Jun 2018
Location: Nm
Posts: 168
Received 43 Likes on 34 Posts
Default

Hello, new here. I attempted this hack on my 1998 Lexus LX470. I did something wrong and ended up zeroing the eeprom (all Fs) but cannot start car and it wont go into auto registration mode. I ordered another ecu, but it wont be here for a little while, and I'd like to get my truck running .Can someone help me? Or do I just wait for another box and hope it works? Thank you

Last edited by Mauser; 06-30-18 at 12:52 PM. Reason: Spelling
Old 06-30-18, 07:12 PM
  #12  
wmj259
Intermediate
 
wmj259's Avatar
 
Join Date: Jan 2016
Location: Maryland
Posts: 288
Received 29 Likes on 29 Posts
Default

Its really hard to tell when something you do messes up. Especially for electronics, like an eeprom.
Old 07-02-18, 05:06 PM
  #13  
wmj259
Intermediate
 
wmj259's Avatar
 
Join Date: Jan 2016
Location: Maryland
Posts: 288
Received 29 Likes on 29 Posts
Default

This got me thinking, since I already have a master key. I can just get 2 more keys, program them into my current ECM and them copy and paste the EEPROM contents from old to replacement ECM. What do you guys think about this route?
Old 07-02-18, 06:31 PM
  #14  
Mauser
Pit Crew
 
Mauser's Avatar
 
Join Date: Jun 2018
Location: Nm
Posts: 168
Received 43 Likes on 34 Posts
Default

That should work fine if you can get your eeprom to write. I found the virgin dump for mine, but still no luck writing to the eeprom.
Old 07-03-18, 07:31 PM
  #15  
speedkar9
Lexus Champion
Thread Starter
 
speedkar9's Avatar
 
Join Date: Aug 2012
Location: Toronto, Canada
Posts: 1,729
Likes: 0
Received 118 Likes on 89 Posts
Default

Originally Posted by BMeek
As you might gather from the 20-year-old car I'm talking about, I'm rather scared about the cost of enlisting a Lexus dealer to sort this out :-). About what should I expect to pay to have a competent locksmith flash my ECU and get all of these keys/remotes functional?
If your honestly not scared about someone stealing your 21 year old car, you can put the valet chipped key head (or the chip itself) next to the transponder (behind the ignition ring in the dash) and have the dealership cut keys that will turn the ignition. The chip inside the dash will be recognized with any key and you can cut as many as you like.

Originally Posted by wmj259
I was wondering if after switching out the ECM, if you could just use Techstream to reprogram the keys? If not my second option would be to use a Arduino and figure out how to attach to the chip.
I saw that in your method you use zeno diodes and resistors, can you link to the ones that you used or even a parts list.
Techstream requires locksmith permissions that only dealerships have access to in order to virginize a used or new ECU.

Originally Posted by Mauser
Hello, new here. I attempted this hack on my 1998 Lexus LX470. I did something wrong and ended up zeroing the eeprom (all Fs) but cannot start car and it wont go into auto registration mode. I ordered another ecu, but it wont be here for a little while, and I'd like to get my truck running .Can someone help me? Or do I just wait for another box and hope it works? Thank you
Try copying my virgin EEPROM dump file from my video.

Originally Posted by wmj259
This got me thinking, since I already have a master key. I can just get 2 more keys, program them into my current ECM and them copy and paste the EEPROM contents from old to replacement ECM. What do you guys think about this route?
Yes this would work.
The following 2 users liked this post by speedkar9:
BMeek (08-13-18), wmj259 (07-03-18)

Thread Tools
Search this Thread
Quick Reply: DIY: Immobilizer Hacking for Lost Keys or Swapped ECU



All times are GMT -7. The time now is 09:45 PM.