gothos-folly / TeraDamageMeter

MIT License
19 stars 11 forks source link

Skill damage breakdown #9

Open amordeastrum opened 9 years ago

amordeastrum commented 9 years ago

Damage break down for each skills would be great. Ex. Skill Name | Total Damage | Avg Damage | Crit % | Skill #

gothos-folly commented 9 years ago

I've already done some work in that direction. But for now I'll focus on polishing the existing features, before adding big new features.

One of the problems is obtaining the list of skill names. I can extract them from the decrypted " DataCenter*.bin" file. But I don't know how to decrypt it. I found a decrypted file for the current EU version of Tera, but don't have it for other versions of Tera.

amordeastrum commented 9 years ago

I dont know how skills are comming off the packets, but If each skills have static unique ID, i can test all of them out and send you the list for NA version as long as i know what the IDs are. I wish i knew how to decrypt the file, but sadly, im not too savvy.

Roukanken42 commented 9 years ago

I've done some research towards decrypting the DataCenter. It's encrypted in AES-128-CBT, for decrypting it needs key and iv.

Those should be only findable in TERA.exe, as they change with each version. It's protected by something against decompiling though.

I'll try to get more info (and hopefully the keys)

gothos-folly commented 9 years ago

From what I know its compressed with gzip and encrypted using AES-128-CFB.

My two ideas towards dumping are finding the AES code via the AES sbox (it's present in Tera memory) or finding the gzip code via IDA's FLIRT.

Gl0 commented 9 years ago

I've seen correct skill names while debugging being connected to RU server (english version, of cause). So, your user_skills.txt is region-independent.

Roukanken42 commented 9 years ago

Well, I managed to (kidna) unpack it, it doesn't run though - probably messed up some checksums. I threw that into IDA, and I found AES sbox, rsbox and code that refers to them. (3 functions use tables of which one uses the other 2). That's about as far as I have gotten now.

And while region-independent they may be, they are not update-independent (ex: Brawler) so finding a way to get them is still valid concern. (and not relying on mercy of random hackers)

And besides those things contain other nice things (for example item names, enemy names, buff names should be there too, and I want them)

And what patch is RU on ?

Gl0 commented 9 years ago

go berserk, 3308b