Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is this project still alive? #132

Open
LucasCTN opened this issue May 2, 2015 · 63 comments
Open

Is this project still alive? #132

LucasCTN opened this issue May 2, 2015 · 63 comments

Comments

@LucasCTN
Copy link

LucasCTN commented May 2, 2015

I'm getting a lot of trouble by the fact that IntWars can't detect the LoL 4.20 backup that I have, and because of that I can't test neither help the project.

Is this project still alive? It is planned to get support to the newer versions of League of Legends?

@Querijn
Copy link

Querijn commented May 2, 2015

The detection is using a registry key, please consult the help subforum on leaguesandbox.net for help on setting ihis project up.

We are planning on supporting the newer versions but we require people that are capable of updating to that version. As of now, no one seems to be able to.

@LucasCTN
Copy link
Author

LucasCTN commented May 3, 2015

Thank you for your answer. I'll search for it.

@LucasCTN LucasCTN closed this as completed May 3, 2015
@NitroXenon
Copy link

@Querijn Maybe find someone who knows C++, reverse engineering or packet from L#.

@LucasCTN
Copy link
Author

I'm interested in start to learn reverse engineering, to help the project. Anyone have suggestions on how to start?

@NitroXenon
Copy link

@Luk3M If you want a first glance about how to find values in memory, I've made a tutorial about how to find zoom value easily, using CheatEngine :
http://www.elitepvpers.com/forum/tutorials/1849328-tut-how-code-your-own-zoomhack-your-games-pictures-detailed.html
I made it 3 years ago, and I was pretty much a begginer, so it's perfect if you don't know much about game hacking. Actually, this tutorial is a bit confusing, because I didn't realize that the zoom value was a float not an integer.

If you want to learn with more serious materials, I suggest you to learn about assembly, IDA pro, and OllyDBG.
Assembly is the language itself, it is important that you understand basic instructions (mov, push, pop and call at least)

For OllyDBG, I suggest you to read those tutorials : http://thelegendofrandom.com/blog/sample-page
You'll learn how to trace an application and execute it step by step.

For IDA Pro, I suggest you to watch the reverse of the game "Capitalism 2" : https://www.youtube.com/watch?v=vb18UVF4a_o (You can find IDA 6.6 + HexRays very easily on internet...)
IDA is really important to learn because you can reconstruct structures efficiently with HexRays. Structures are important for finding offsets.

Not my say, from here : https://github.com/Spl3en/LoLClientAPI/issues/1

@Querijn
Copy link

Querijn commented May 19, 2015

Don't think those basic instructions will help you get started.. You have to know your bitwise operator (at least for the comparisons) and jumps as well. You'd have to know registers and flags as well.

The tutorial might go into them, haven't checked.

Plus, if you want to get into this project specifically, you'd have to find out what the encryption does exactly. Seeing as most experienced engineers stopped with this, I bet it's not that easy or a good start for learning RE.

@Querijn Querijn reopened this May 19, 2015
@NitroXenon
Copy link

Because it is too difficult, so devs didn't update intwars to 5.9 :P

@LucasCTN
Copy link
Author

Thanks everyone for the help. I'll give it a shot. I was already interested in reverse engineering, and help the project would be even better.

@Fighter19
Copy link

Sorry to bump such an old issue.
But why is it needed to have experience in RE?
It would suffice to get the 4.20 client running.
Plus the argument of not having saved enough replays isn't really valid (which I read somewhere), as there are many replays out there which work by having the data saved which came from the server. (LOLReplay makes a difference between SpectatorMode or not, which you can look up in the header of the LRF file, saved as json). I just tested it with a 1.0.0.142 (Really old, didn't even play League back then) Replay, and it worked out fine (after having downloaded an older LOLReplay client, as the new one would try to start it like a spectator).

@Elyotna
Copy link
Owner

Elyotna commented Apr 3, 2016

@Fighter19

In patch 4.21, Riot added massive obfuscation to packets which cannot be easily reversed, thus the need of skilled reverse engineering.

Your comment about lol replays is somewhat valid, but the thing is it's always easier to be able to capture packets of actions you're specifically doing, so that you know there is a link between them.

But you know, feel free to work on that and make pull requests with new 4.20 packets.

@Fighter19
Copy link

Thank you!
I might consider it, however I'm currently busy, so this would have to wait a little.
(Just found a full caputre of a 4.1.0.171 game).
Hopefully the protocol didn't change too much, if it did, I'd have to continue my search ^^
(How do you apply the blowfish on the packets, btw?, Compiling the dissector for Wireshark?)

@DarwinAnim8or
Copy link

Oh hey Elyotna is still active. I picked up this project a little while ago and have been tinkering with it.
Added a bunch more champion skills, but I need to modify the actual server to get stuff working properly. Lots of work ahead :P

But it's nice to see that Elyotna and others haven't jumped ship :)

@Fighter19
Copy link

I know, I especially miss healing, as I wanted to write Nidalee's E :D

@DarwinAnim8or
Copy link

I have a version with summoner spells working like Heal, Flash and Ignite. It's from another repo. Maybe you could base your work off of that?

(PS: feel free to add me on skype so we don't spam Elyotna's e-mail. Same username as on here)

@Elyotna
Copy link
Owner

Elyotna commented Apr 3, 2016

@DarwinAnim8or

Oh I'm definitely no longer active :D. I just read the comments from time to time. If someone is willing to update the repo to the latest patch I might come back but otherwise, nope :) .

@Fighter19

There were a lot of changes between 4.1 and 4.20. No big one as far as I remember, but all the miscellaneous ones might drive you crazy.

@NitroXenon
Copy link

@NitroXenon
Copy link

@Elyotna

"I worked on Elyotna's IntWars, a C++ server emulator for League of Legends. After that project was dead due to new encryption methods implemented, I moved to work on private code, in C#. This one was able to beat the new encryption." - Querijn Heijmans

@NitroXenon
Copy link

@Elyotna It's not impossible for @Querijn to decrypt the packets tho :P

@NitroXenon
Copy link

@DarwinAnim8or @Fighter19
There are 6 open PRs but no one gonna merge them...
Btw I have IDA Pro 6.6 leake version. If you guys want it, feel free to email me.

@NitroXenon
Copy link

https://github.com/SightstoneOfficial/IntWarsSharp

This is a C# port of IntWars. It's currently maintained by Sightstone. We can add you as a contributor if you want to make some changes or add something.

@Querijn
Copy link

Querijn commented Apr 4, 2016

It's private for a reason. I have no intention to share someone else's hard work.

Also hey @Elyotna! Long time no see!

@NitroXenon
Copy link

@Querijn Just a question, no offense. Are you working for Riot now? Is it the reason?

@Querijn
Copy link

Querijn commented Apr 4, 2016

Riot encrypts the stuff for a reason. I don't want to encourage hackers or give them a platform to work on. Plus, it's mostly someone else's work, it would be kind of harsh to share it without his consent.

@NitroXenon
Copy link

Riot encrypts packets because they don't want to see some "L#/EloBuddy packet cast" or "Botrk exploit" again?

@Querijn
Copy link

Querijn commented Apr 4, 2016

For example. They also don't want a sandbox.

@MythicManiac
Copy link

@Querijn who would this someone be? Of course if he wishes to remain anonymous, that's also fine.

@Querijn
Copy link

Querijn commented Apr 4, 2016

He does. You can direct all questions at me, but please keep your discussion on topic.

@MythicManiac
Copy link

It would be a relatively straight forward process to create an installer for the current version of IntWars, which would also download the 4.20 version of League from their official servers.

All previous versions of League are still available to download directly. The file format they use is actually fairly smart—only part they're missing from the official patcher is removing unused files.

Basically the patcher only downloads new versions and added files, but doesn't remove the older ones. After this, a new releasemanifest is formed, which acts as an "index" for all of the release's files.

To download 4.20 straight from Riot, you'd just have to fetch the files from their servers that are defined in that version's releasemanifest and archive them properly to their format.

@DarwinAnim8or
Copy link

Thanks, @clutch1122!
Time to finally make an account there :P

@DarwinAnim8or
Copy link

@MythicManiac When downloading 4.20 using the patcher posted on the forums (LoLPatcherProxy) it doesn't download all assets though; So I downloaded the client from Mega

@MythicManiac
Copy link

@DarwinAnim8or Yeah, there are no fully functional patchers as of now, at least as far as I know. It is possible to create one though, unless Riot's version control is corrupted.

@NitroXenon
Copy link

Mega removed the file. Someone re-uploaded it. I have the link but I don't know where to post it.

@MythicManiac
Copy link

I think it would be far better to write an actually working patcher specifically for IntWars which would download the 4.20 league client.

Problem with just uploading the client somewhere is that it's almost bound to be taken down every once in a while + it isn't exactly using the "official" client then.

@Fighter19
Copy link

You can just use LoLProxy to download it, then add the missing files (which is just RiotRadsIO.dll) from your own LoL insatllation.

@Querijn
Copy link

Querijn commented Apr 4, 2016

Last time I tried it, it worked on it.

@NitroXenon
Copy link

I tried it last week. Didn't work. The game client always crash and never show the loading page.

@Fighter19
Copy link

As I said, try to copy the RiotRadsIO.dll from the RADS folder from your normal lol installation over to the new RADS folder.
That fixed it for me. Else, just upload your R3D log to paste.bin and insert a link.

@Neekhaulas
Copy link

@NitroXenon Are you sure that it's the 4.20 client when you run it?

I worked a bit on the project but there are some problems with the pathfinding that cause some errors. I looked the new encryption but I've abandonned. Anyway we can still work on 4.20 client. I've added cooldowns and mana costs plus tried to make dynamics summoners spells thanks to joaquin95

@Fighter19
Copy link

I'm pretty sure he is. I got the same problem after adding the RiotRadsIO.dll to the RADS folder however it worked (I also copied my config, but I don't think this was the solution)

@NitroXenon
Copy link

I downloaded the full client of 4.20 from Mega and it worked. Btw thanks @Fighter19 your help :)

@NitroXenon
Copy link

@coquicox That's awesome. I think we should create a repo to centralize all changes of forks since no one accepts PR of this repo.

@Neekhaulas
Copy link

Well you can have a look on my repo but i dont know if it will be the center of the project :p

@DarwinAnim8or
Copy link

I think yours is the best starting point right now, @coquicox
It's what I'm currently using as base instead of the Kevin43 one

@Neekhaulas
Copy link

Alright so don't hesitate to make PR :)

@chutch1122
Copy link

I'd support a C# rewrite. It's a little easier to get the environment set
up to so that could help with attracting devs. It'd also be a good
opportunity to do some major refactoring
On Apr 4, 2016 2:04 PM, "Nicolas Roy" [email protected] wrote:

Alright so don't hesitate to make PR :)


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#132 (comment)

@MythicManiac
Copy link

I'd be willing to contribute more to the C# port as well. There was the port at Sightstone's repo—any ideas how good/usable is it?

@Neekhaulas
Copy link

Yeah I'll see what I can do

@Fighter19
Copy link

@Querijn I doubt ripping of the assets from their game and using it in their competitor's game is what Riot would wish.

@Neekhaulas
Copy link

@MythicManiac I fastly looked and it seems working but the lua part is not totaly ported
public void loadLua(LuaScript script) { //Fuck LUA
I start working on it 😄

(https://github.com/coquicox/IntWarsSharp)

@MythicManiac
Copy link

It also should be possible to load/extract all of the game's own lua scripts and run them. Might be worth looking into. (Although, they're compiled lua, but that shouldn't be big of a problem)

@Neekhaulas
Copy link

I don't know what they're doing but I think it's for the game and not the server. However it need to have a look

@MythicManiac
Copy link

At the very least they should give a pretty good idea about how the client expects them to work. I bet you could build a system that automates it for the most part.

@NitroXenon
Copy link

@MythicManiac Some packets haven't implement or broken. See this issue : horato/IntWarsSharp#1

@NitroXenon
Copy link

@MythicManiac @coquicox
You guys are collaborators of SightstoneOfficial/IntWarsSharp now XD

Any PR is welcome. Feel free to contribute :P

@DarwinAnim8or
Copy link

If you guys are gonna rewrite it in C#, might I suggest the re-addition of onCast in lua? I personally added it back in on my build because for example, Lux's ult particle would fire as soon as you'd start casting. I'm sure there's other skills that would benefit from this too.

Oh and I would check the flags defined in Spell.h. I've talked about it with @Fighter19 and it seems like some flags aren''t defined correctly. As a temporary fix for the Lux ult, you needed to swap the definitions of SPELL_FLAG_InstantCast and SPELL_FLAG_NonDispellable. If left the way they were, Lux's ult fired instantly instead of charging for 1.5 seconds. Although that may because the cast isn't sent (correctly), because no cast time indicicator shows up nor does the animation play.

@Neekhaulas
Copy link

I'll try to remake the lua part.

@MythicManiac Here what I got with the luaobj of Essential Flux of Ezreal : http://pastebin.com/kB8Kdqap

It's seems to be only datas about the spell and not how it works.

(BTW we could chat on something like Slack or Discord or IRC or whatever)

@MythicManiac
Copy link

I set up a Discord room, so anyone who's interested in contributing, feel free to join: https://discord.gg/0vmmZ6VAwXB05gB6

There are mone channels than just that, but you'll need to be assigned to the members group. Just ping me or some other admin and we'll assign the group.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants