Sunday, December 14, 2014

E-Sys Launcher PRO

E-Sys Launcher Pro


E-Sys Launcher PRO (V1.0.4 as of this writing) is a Next-Generation Universal Token Solution for E-Sys Version 3.22.x and up (except 3.25.x due to bugs with E-Sys). The PRO version is for those who are already using my patchless token solution.

User Interface


 
E-Sys Launcher Pro FEATURES
1) Increased Default Memory Allocation. E-Sys needs memory and lots of it. Default setting is barely enough for simple cars like the F20/F30s but is hardly sufficient for cars with complex ECUs (F15, F56...etc.). Most coders do well by changing this settings but some aren't aware of this. While it can be easily changed, E-Sys doesn't check the value and if you set it too high, will prevent E-Sys from launching again. The PRO version offers two additional settings over the Premium. Max and Custom.

2) Enhanced Overall System Stability. By ensuring E-Sys gracefully shutdown and JVM properly recycled at the end of each coding session, your system is kept optimized for the next session. Stock E-Sys, more often than not, does not fully terminate when you exit the application. JVM lingers in the background, hogging and leaking memory. The issue becomes more apparent when you start/shutdown E-Sys numerous times, to a point where system restart is required. The PRO version also adds additional setting that boost stability of background tasks spawned by E-Sys

3) Zero E-Sys Configuration. With the launcher, there's no need to reconfigure E-Sys to use different Soft tokens. Those with OEM or my patchless token solutions can keep using it by clicking the Blue E-Sys icon, while using the launcher will use the assigned token, all without having to fiddle with the settings. The order in which you install E-Sys and the Launcher does not matter, as nothing gets modified.

4) Personalized and Individualized Token. The soft token you create from existing patchless tokens will only be usable on your own machine. It cannot be shared and reused on another machine. This also means that someone can't sell you a token and expect it to work. With the built-in Token Generator, creating soft token is as easy as pressing a button. No fiddling around with some command line tool and creating XML data by hand. The PRO version adds the ability to use patchless tokens without having to extend/regenerate it.

5) Absolute Security. It became pretty easy to hack CAFD recently. With the launcher, the risk of using hacked CAFD is reduced to 0. Hacked CAFDs are prevented from loading, exactly the way stock E-Sys does, stopping it dead from its track. Coupled with individualized token, there's no need to worry about hacked CAFD, even the ones that are re-signed and encrypted. BUT, you have to have an unpatched E-Sys. Patched file works by ignoring digital certificates.

6) No-Touch Post Deployment. With the launcher, all you need is to install E-Sys. Already installed E-Sys? No problem, just use the launcher and it just works without adding, modifying, or editing anything. Upgrading E-Sys? Go ahead, launch it and see it work.

7) Supports Multiple Versions/Side-by-Side Setup. If you have multiple versions of E-Sys installed on your machine (like I do), the Launcher PRO can be configured to launch each one with different launch mode. Even if you only have a single instance of E-Sys, it can be launched 4 different ways. 


8) Supports 4 Different Launch Mode. The launcher PRO supports different launch types. This means that you can use the launcher with an OEM Soft Token and just take advantage of the higher memory settings or enhanced stability, or both.

Note: Do not mix and match different solutions, it's not generally recommended and could elevate the security risks the launcher is trying to minimize. 


Feature Comparison
 

Warning about E-Sys 3.26.x: Be warned that 3.26.x is not as stable as 3.24.3 and you may experience error especially when flashing, with or without the launcher. 3.25.x is worse. I am still using 3.24.3 for this reason. 

Interested? Send me an email at fxxtokenmaster_at_GMail

Friday, October 31, 2014

E-Sys Launcher - New Universal Token Solution for E-Sys

E-Sys Premium Launcher Version 1.0.3.16


My patchless token solution brought something new and something relevant when I introduced it. And now, E-Sys Launcher Premium, once again, changes the way we use E-Sys. When a simple patchless solution just doesn't cut it anymore, E-Sys Launcher Premium brings a whole new set of feature to the table and is the only true innovative contender to my own patchless solution.

Features:


- Increased default memory allocation. E-Sys needs memory and lots of it. Default setting is barely enough for simple cars like the F20/F30s but is hardly sufficient for cars with complex ECUs. Most coders do well by changing this settings but some aren't aware of this. While it can be easily change, E-Sys doesn't check the value and if you set it too high, will prevent E-Sys from launching. With the launcher, the memory allocation is doubled.

- Enhanced overall System stability. By ensuring E-Sys gracefully shutsdown and JVM properly recycled at the end of each coding session, your system is kept optimized for the next session. Stock E-Sys, more often than not, does not fully terminate. JVM lingers in the background, hogging and leaking memory. The issue becomes more apparent when you start/shutdown E-Sys numerous times, to a point where system restart is required. With the launcher, this is unlikely to happen.

- Zero E-Sys Configuration. With the launcher, there's no need to reconfigure E-Sys to use different Soft tokens. Those with OEM or my patchless token solutions can keep using it by clicking the Blue E-Sys icon, while using the launcher will use the assigned token, all without having to fiddle with the settings.

- Personalized and Individualized token. The soft tokens you create will only be usable on your own machine. It cannot be shared and reused on another machine. This also means that someone can't sell you a token and expect it to work. With the built-in Token Generator, creating soft token is as easy as pressing a button. No fiddling around with some command line tool and creating XML data.

- Absolute Security. It became pretty easy to hack CAFD recently. With the launcher, the risk of using hacked CAFD is reduced to 0. Hacked CAFDs are prevented from loading, exactly the way stock E-Sys does, stopping it dead from its track. Coupled with individualized token, there's no need to worry about hacked CAFD.

Note: Do not mix and match different solutions, it's not generally recommended and could elevate the security risks the launcher is trying to minimize. My patchless solution can safely co-exists with the launcher, however, but it won't be loaded while the launcher is running. The patchless solution will also be replaced soon.


Main UI:




Soft Token Generator:


See it in action:


Wednesday, October 15, 2014

Random Musing #2 - "Good Artists Copy, Great Artists steal"

"Good Artists Copy, Great Artists Steal" - Picasso

I've recently chanced upon the above quote, and I thought it couldn't be more fitting that what's happening lately.

To start with, one troll has launched a witch hunt against me. It has been going on for a while now, but one I always ignored since I didn't think he deserves any of my attention. I guess his animosity towards me started when he couldn't crack my token, despite me telling him exactly my process in a numerous and lengthy email. It was detailed, short of writing the code myself and giving it to him. I now realized that even if I did that, he wouldn't get it anyway.

Another guy showed up in the forum recently. The troll saw a chance to pounce on me and throw numerous accusations and took a jab at every single chance he gets. I'm pissed off, but I ignored it. But I'm still pissed off, so much so that I stayed away from the forum. THAT is how much I'm pissed off. I enjoyed hanging out in the forum but I can't stand this guy.

Let's see what he's accusing me of:
  1) I don't share anything. - Really? I've told this guy everything, it's not my fault that he doesn't understand any of it. I think he equates sharing to spoon-feeding -which I never believe in. You know the proverbs: "Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime"? This is what I believe in.

As far as I'm concerned, I've been sharing information in the forum. I've given tools that help fellow coders. And this troll dared accuse me. The thing is, if you search his posts, not a single one is helpful. He likes to answer like "Search the internet". That is the most asinine answer anyone could ever come up with. 90% of his posts is asking for help and he's as clueless as can be, because the answer to his question is already provided in the very thread he's asking.

  2) "I am just a seller" - Well, if you don't recognize my tools as help, then yeah, I'm just a seller. I sell my own original work though. I don't rip people of their work. And there's a reason why I'm selling tokens and giving away my more valuable tools. I could have sold my tools too, but I don't see any reason.

Here's the kicker -this troll sells tokens as well. Tokens he got from a stolen information, tokens he got for free, tokens provided to him by the other guy. If you belong to any European BMW Forum, he has likely offered you "his" token via PM.
    
He claims he developed this token, but boy, you can bet your bottom dollar he didn't do anything because none of this make sense to him.

The other guy took several jab as me as well. First, he called my assertion that there's a danger in a patched solution, despite having a proof, FUD. I thought that was funny and absurd at the same time.
He came up with a token solution he claims is safe and will accept any token -both of which is false. By working with the troll above, they were able to come up with a solution similar to mine. I say "similar" because it's not the same. Not as secure as my solution -close but not quite.

"Good Artists Copy..." Too bad they only settled in copying. That is already a failure, in my opinion.

By the way, there was a thread over at Bimmerfest which was already deleted as it gotten crazy. The troll looked down at people and started calling them names and what-not. In that very thread, he did admit that he was studying my solution, along with one other guy. I find this preposterous and disrespectful. Never have I encountered a forum where one could be so blatant and open in disrespecting another member. He dared accuse me of being "just a seller". He's dirtier and stinkier than the mud he's throwing at me. Yes, I sell tokens, but he sells tokens provided by others. And he tried to crack my solution...

You may be saying, "But you cracked BMW's solution as well". Yes I did, I did crack it. I copied the idea. BUT I didn't stop there. I made the idea my own and made it better - "Great Artists Steal". The fact that my token would only work with my solution is a proof of that. I worked hard to make my solution secure so no modified CAFD would work, so our car remains secure from malicious intent. We're talking about a $40,000 (at least) cars anyway. 

And here's one more kicker. The other guy says "save your money and donate it to charity"
 (Note: Other name redacted upon request)

What happened? Did the world turned upside down. Why dis and accuse someone of doing something when in fact, it is them doing it?

I am very disgusted and disheartened with all of these. I believe in humanity but these things are certainly taking their tolls on me...

Lastly, truth be told, I give a lot of people free tokens. Some insisted on donating but I don't accept personal donations. I told these people if they're serious about donating, to donate it to their local Children's Hospital or Cancer institute. I support these two institutions. I believe they're doing this world a huge favor.

Now, I never intend to disclose this because I believe helping others is just natural, it's being human. It's not something you do and then tell the world about it. But, with all the accusations thrown at me recently, I can only take so much. The people I helped could speak for this...

Picasso is indeed one of the brilliant mind of his times - "Good Artists Copy, Great Artists Steal"

Note: I know this is ranting. I just had to let it off. There will be no other similar post in the future.

Thursday, August 28, 2014

3.26

So, 3.26, came out a couple of weeks ago. And yes, this one's done :) It was provided by one BMW god who's always looking out for us, mere BMW mortals :)

There's not much difference you can see on the UI side. But on the inside, it is a lot better, leaner, more mature than 3.25 was. It's a lot cleaner, and is actually usable.

3.26 requires PSdZ version 5.0.1 or newer. None of the current PSdZdata released as of today, satisfies this requirement. One good member of Bimmerfest contacted me with a valuable information. He has access to PDX Template V3 and that template contains the proper PSdZ library required by 3.26. The short of it, I go it working by using PSdZdata 53.3 and applying the template.

3.26 is OK, definitely better than 3.25, but I'm still on the fence when it comes to 3.24.3. I personally think 3.24.3 is the best release so far.

NOTE: My token works for all versions, from 3.22.x to now, 3.26

UPDATE: 9/1/2014 - PSdZdata V53.5 just came out and it works with 3.26 as it's now on the required PSdZ version..

Wednesday, July 23, 2014

Think You Need a Token? Maybe Not...



I’m surprised that quite a few thinks that software token is required to use E-Sys. Some even think it’s needed to “unlock” the software before use. As I always tell somebody who’s asking for a token, it’s not always needed. Never fails to bring a smile when they come back and say “thanks, it worked!”. Believe it or not, I’m just as happy as you are saving a few bucks.

There’s only a few places in the app where it is needed, and depends on what you intend to do, you may not even need it at all. Connecting and reading coding data, Vehicle Order (FA), VO Coding, Flashing, clearing codes (via Transmitter app), importing/exporting FSC, FA/SVT/TAL editor, TAL calculation/processing don’t need a token. Viewing CAF, viewing/editing FDL, and FDL coding do require one.

Let me just clear one thing before I go further. Coding will only enable (or disable) what your car can already do, but may disabled from factory. Coding will not let you fold your mirrors if you don’t have the motorized mirrors. Variable Light Distribution will not work if you don’t have KAFAS (Cameras). It can’t magically do what you want it to do without supporting hardware.

So, you want Enhanced Bluetooth (EBT)? Can do, without token. Want to turn off Auto Start/Stop? Yup, no token required. Enable VLD? Unlock boot with doors? Normal/very sensitive light control? Alpine retrofit? Seatbelt reminder off? Yes, yes, yes, yes, and yes!

Just a note on seatbelt minder. I didn’t touch this. Anything related to safety, I keep the default. It doesn’t bother me, so it stays on. Same goes true for VIM, GPS warning...etc.

How? Before I go further, let me state that I didn’t find any of the following items myself. Somebody else found 'em and is heavily discussed in different BMW boards. Let me know if you discover it and you want credit. I’ll be glad to give credit where it’s due. I simply don't know so I'm leaving it.

EBT – change 6NH to one of 6NK, 6NL, 6NS. Note: You must have COMBOX or NBT or the newer HU like ENTRYNAV
VLD (Anti Dazzle) – See this thread: http://www.bimmerfest.com/forums/showthread.php?t=660719
Seatbelt minder – HO-Wort OI11, OI12 and VO Code ACSM
ASS – Add OMSA to your HO-Wort (HO-Words) and VO Code FEM
 Retrofit Alpine – HO-Wort HIFI, VO Code NBT
“Retrofit” Satellite Tuner – Import FSC, remove 693, add 655, VO Code NBT
The above is not by any means complete, nor definitive.

How to change VO and perform VO Coding: http://www.bimmerfest.com/forums/showpost.php?p=7448118&postcount=2 (From ShawnSheridan)

As for VO Coding, the way I do it is that I have my modified FA XML File that I load and activate whenever I need to do VO coding. I don’t write this modified FA back into the car. If you are worried that your dealership will be a pain in the a$$ when it comes to these matter, then, ensuring your VCM is not updated will be in your best interest. I’m lucky my dealership couldn’t care less but this is not to say that it’s OK to do it nor is your dealership gonna be the same.

NCD / CAFD Tool V0.2.6 Alpha

NcdCafdTool V0.2.6 was released sometime back.

Added "What-If" SVT-CAFD

This feature uses your SVT, instead of individual NCD files, for input. CAFD file version associated with your current I-Step, will be determined automatically from SVT file.
FAFP will be retrieved from CAFD and any main series not used by CAFD will be excluded. Selected Build Level will control available options. If multiple ECUs are affected by a particular option, all CAFDs pertaining to these ECUs will be listed.

You can quickly find an option by selecting an item, then typing it in, e.g. 6WA, 6NS...etc.

Results are determined by a particular CAFD and not every option will have an effect on the selected CAFD. Don't select any options that obviously don't have any code associated to it, e.g. 130, 23B

Results are meant to be use as a guide only. They are by no means authoritative or definitive. Verify and use at your own risks.
 



If you have customized the settings, don't overwrite "NcdCafdTool.exe.Config" or your settings will be replaced.

Bimmerfest Thread

Saturday, April 19, 2014

NCD / CAFD Tool V0.2.5 Alpha

NcdCafdTool V0.2.5 Alpha just released. A feaure called "What-if FA-CAFD" has been added. In a nutshell, is that it can determine the functions being modified when a certain option is added.


"What if I add 6WA, what would E-Sys do to my NCD?". "If I add 6NS, then..." You get my drift. This is entirely based on what's inside FA and CAFD. Based on your chosen FA, car series and build date, the tool analyzes your selected CAFD (or NCD) and list down all affected functions (non-default only) and what the value should be.

This feature uses ncd file or CAFD file for input. If you use *.ncd, the tool will use the version of CAFD used to generate your ncd file, meaning the CAFD associated with your current I-Step. Opening CAFD allows you to use any version.

FAFP will be retrieved from CAFD and any main series not used by CAFD will be excluded. Selected Build Level will control available options.

You can quickly find an option by selecting an item, then typing it in, e.g. 6WA, 6NS...etc.

Results are determined by a particular CAFD and not every option will have an effect on the selected CAFD. Don't select any options that obviously don't have any code associated to it, e.g. 130, 23B

Results are meant to be use as a guide only. They are by no means authoritative or definitive. Verify and use at your own risks.

Lastly, this tool is free. Never pay anything for this tool.


If you have customized the settings, don't overwrite "NcdCafdTool.exe.Config" or your settings will be replaced. Open "NcdCafdTool.exe.Config" with Notepad, copy the value of signatureKey node, then open the application, go to Settings and replace the Signature Key. You can also edit your config file with Notepad.

Bimmerfest Thread

Tuesday, January 28, 2014

Kompatibilität und Informations System (KIS) Advanced Table Viewer

A great member of the BMW Coding community (SS :)) asked me a while back if I can write a KIS table viewer. It took me awhile what with all the retrofit activities I've been doing, but finally, I found a good library to utilize. And the result: KIS Advanced Table Viewer:



KIS is part of E-Sys and is runnning in the background. E-Sys reads and load all KIS database on start up -and this is probably why E-Sys frequently runs out of memory at its default configuration. The HyperSQL code and GUI is based off of umpakba's work. It's heavily modified to make KIS work, however.

While the tool is free, I don't think it's for everybody. KIS database contains some great information, but only if you make sense of it. Otherwise, it's pretty useless.

The tool is free, but I'm not making it available to the general public. HMU if you want it, but let me know how you're going to use it :)

EDIT: 12/14/2014
I can now share this publicly: KISATV

Sunday, January 26, 2014

Why Hacking XMLCrypto is Bad, Really Bad!!!

From the get-go, I've always avoided cracking XMLCrypto. Every time I see a discussion about hacking it, I always say leave it alone. To some people, that came across as protecting my vested interest. That can never be farther from the truth.

I've also been in discussion with a few people wanting to do their own solution, and they always focus on this one class: The XMLCrypto class. I don't blame them. I mean, this is the shortest way to their goal. I mentioned in one of my previous blogs that I looked at this and have almost considered doing exactly just that. But...my training and experience pushed me to find another way. And there's always another way. Working for a top tier security company, I've seen all this happen too often. Bad guys are always trying different things to spread harm. And I love my car too much to have to worry about this problem.

More and more solution are coming out and they're all centered on cracking XMLCrypto. There's one solution that is particularly bad. For one, this was based off of somebody else's work. For another, it entailed patching 3 class files. 3 Class Files!!! Seriously?!? If he knew what he was doing, he wouldn't be patching 3 files. If everyone had at least some sort of basic security training, they'd leave XMLCrypto alone. If everyone cares about their cars and their friend's cars as much as I do mine, they'd leave XMLCrypto alone.

So, why is it bad? For those who know E-Sys, you know that it is only part of a bigger solution. PSdZ (PSdZData) is what makes it work. All files in PSdZ are digitally signed, encrypted and some are even compressed. There's a reason for that. The very reason we digitally sign a document is to preserve its integrity and verify it's authenticity.  When you patch XMLCrypto, you take all that away. You dump the digital signature and accept everything blindly.

XMLCrypto is our last defense in verifying FA, FP, CAFD and everything else. It is our protection from tampered files. Think of it as the firewall of PSdZ. It only allows trusted and verifiable files.

Figure 1: XMLCrypto doing its job

Like I said, patching it takes away all these feature and benefits. It's akin to creating a wide hole in the firewall. Wait, not just a hole, but you're actually breaking down the entire defense wall. Why anyone would do it is well beyond me. It such a shame they don't understand this concept and the danger of doing such a thing.

Figure 2: Patched XMLCrypto Class

Proof of Concept: Download this file: Modified CAFD This is an CAFD, altered and repackaged. Unpatched E-Sys will never accept this CAFD file as it knows it's tampered and will never pass verification. But those with patched XMLCrypto will have no trouble using this file. In fact, the app will gladly accept anything you throw at it.

But what can a tampered CAFD do, you ask? CAFD is a file template which contains things like default values base on your Vehicle Order. Unfortunately, it also contains values for transport mode. What is "Transport Mode"? It's when your car needs a ride to the dealership because it wouldn't start on its own :).

Kidding aside, it is very easy to get these values and replace the ones used as default values, package and distribute it as "New" version of PSdZ. None would be the wiser, certainly, not your patched E-Sys.
 
This is why I didn't patch XMLCrypto. I hope everybody realizes this.

Thursday, January 9, 2014

Random Musing #1

#1: Dog eats Dog...

So, in one of my earlier blog, I pointed out a guy selling tokens. This guy generates his own token, BUT, uses patched files from the original developer. What this guy did is reversed-engineered the solution and started generating his own token, then sells them. Geez, what a rip off

And I didn't think it would get worse!!! So, another guy bought a token from then first developer. He then again reversed-engineered this, "created patches" and pass it on as his own. D'uh. And this is actually worse. The first developer, uses 2 patched files, the new guy patches 3. This tells me he didn't really know what he's doing and just patches things left and right. VERY dangerous

...And it gets worse still!!! I learned of a guy who got a token from me, and is now selling token too, derived from the third guy. Next thing you know, he'll mix and match solution, ending up with a FrankenToken lol.

See, these guys bit the hands that fed them. Keep doing that and the hands will eventually stop feeding. These guys chose to ripped people off. We're not exactly saints, but I spent a lot of time developing my original solution without looking at others work. I came up with a patchless solution because I not only studied the software, but the platform which it was built on. I was very careful in my method and made sure the app remained true for whatever it is designed to do.

Dog eats dog, pirates pirating the hackers. Back in the days, these never happened and we had code. We had respect for each others work. We collaborated when we needed something from each other and not rip each other.

#2: 3.22.x ~ 3.24.x is defeated

As most already know, I came up with the first ever patchless solution, but not only it is patchless, it's multi-version as well. The same 20kb file, the same token can be use from version 3.22.x up to and including 3.24.3, or whatever the latest version is on the 3.24 series.

So, this is no news anymore, time to move on

But then...came 3.25.x!!!

#3: 3.25

3.25 came out last year. It was almost redesigned, security-wise. I can almost say, the only change that was implemented was everything about the security. I can't say whether it was the programmer's decision or that of the Architect's, but if I was the PM, I'd be majorly pissed at the direction it went. It added no value, and only caused problem.

3.25.2 would not even FDL code!!! But guess what? I made it run and coded my car. 3.25.3 fixed the issue with FDL coding, but the UI bug remained. The software as a whole is solid, and I give props to the whole development team. It's just that 3.25 shouldn't have went where it did.

3.25 series was a pain. And let me tell you that I spent more time analyzing it than I did on the previous versions. And this is me armed with previous knowledge. It was hard and I almost doubted whether it can be done or not.

And that, folks, is why you don't trust pirates! These guys are selling it for cheap, and why not? They didn't have to do anything. But then, ask them if they can support you, or if you can get upgrade.

#4: Unbeatable?

With the amount of time and effort it took to beat 3.25.x, it's not too far off to think that eventually, we'll be faced with an unbeatable software. This is when the hand stops feeding, the hand will stop giving. Instead of a software that costs few pennies, we'll all end up with a software that is pretty much out of everyone's reach, including mine. And we'll all have the pirates to thank for.