Can mabinogi patchers be written in Java?

05/02/2012 07:53 jose123456#1
Just wondering o.o because I've been learning Java at school and I've been getting pretty good at it but I'm not at that level that I could do something like that I was just wondering if maybe some day in the future I could do that in Java or would I have to learn C and assembly?

Hmmm...o.o I wonder if I will get flammed for this...I know its our favorite thing to do on this forum...but I hope someone answers the question...
05/02/2012 08:56 retarded jas161#2
Making a patcher on java? I don't see why not.
05/02/2012 14:03 tliu0c#3
have to learn C++ and assembly.
And I dont mean just knowing them. You have to be very very good at them.
05/02/2012 15:10 Akuhura#4
It depends a lot on what your intentions are. If you want to blindly copy/paste over existing patches, the language of choice for implementation doesn't matter much.

Doing the patching itself isn't the biggest challenge, when you want to create your own patcher and more importantly, own patches. To make your own patches you won't get around learning about C++ and ASM to actually be able to disassemble, analyze and understand parts of the client's internal working. Regarding this part, knowledge of a language like Java won't help you at all, except for making it easier to learn C++ programming. But the biggest part is learning ASM and reversing C++, thus: learning how registers work, what calling conventions exist, what vftables are and just a few basic things to get to the point where you can somewhat disassemble and understand what's going on in the client. Few starting points might be links like these:

Other than that you will also probably have to deal with the packing/encryption of Themida, which the Mabinogi client now got applied. So you'll probably also have to dig quite a bit deeper into ASM and an understanding of windows PEs to get past this hurdle.
05/04/2012 05:11 jose123456#5
I would just want CP Viewer lol nothing else :/ I'll guess I'll get back into C++ then, but Assembly sounds really hard
05/05/2012 01:45 Codehh#6
memory patcher in java.. that'll be a new one.
05/05/2012 12:08 adam_j#7
Quote:
Originally Posted by Codehh View Post
memory patcher in java.. that'll be a new one.
Working Cryptonogi, that'd be a new one.
05/06/2012 02:25 Akuhura#8
Quote:
Originally Posted by Codehh View Post
memory patcher in java.. that'll be a new one.
Who said anything about a memory patcher?
05/06/2012 08:21 retarded jas161#9
Oh wait. That would make sense if he's talking about memory patchers...
I thought we were talking about the launcher patcher. 8D
05/10/2012 08:14 kikiwai#10
Well, this might be a fine idea....
if you know how to make a mem patch, I assume you know asembly,
anyways, try looking under
java.lang.System
there is a function called loadLibary
if you can load a libary, I am sure you can manipulate its memory addresses.
and to make a jar program into dll, you can try this
[Only registered and activated users can see links. Click Here To Register...]

have fun.
05/11/2012 02:37 jose123456#11
Just wondering...I know I'm being noob and all but like in order to get the Java patcher to work I have to know assembly but assembly to do what exactly to skip over it(my patcher) in a hackshield check? o.o and also since all I care about is CP viewer(never had much use for pake escept for that and mimics) I have to find a new way to view CP because of change of addresses, or method would still be the same as in Fantasia( I have the source, I think I have it somewhere )?
05/11/2012 06:24 kikiwai#12
Quote:
Originally Posted by jose123456 View Post
since all I care about is CP viewer

You know you just pick one of the hardest thing to "just want to do" right?
Well some people find it easy...

Quote:
Originally Posted by jose123456 View Post
assembly to do what exactly
Um.....um....
basically you just asked "how do I make a memory patch?"
and I think you may need to find a master who is willing to accept you as apprentist for that.
05/11/2012 06:50 jose123456#13
Quote:
Originally Posted by kikiwai View Post
You know you just pick one of the hardest thing to "just want to do" right?
Well some people find it easy...

I guess I better hit the books x.x lol

Um.....um....
basically you just asked "how do I make a memory patch?"
and I think you may need to find a master who is willing to accept you as apprentist for that.
No not exactly, I'm not sure how to phrase my question so I'll ask again after I read up on assembly first o.o' sorry. Thank you guys though :)
05/11/2012 22:06 fenrir2037#14
I like how over half the people that reply to this thread think they know what they're talking about, with the exception of Akuhura...

Java it self is object oriented, which makes visualizing of code a lot easier thus it's an ideal language for teaching new programmers. What it hides is the back end of programming: (address) pointers, memory management, etc. Making it easy to learn the basics, without worrying about the complex back end stuff.

When trying to mod/hack mabinogi, you're dealing with memory and addresses a lot, and what you need to do with that information, you'd need to have more "control" over it. Thus that "complex back end stuff" needs to be accessible and not hidden by Java's lovely API. Making C / C++ the ideal language to make patchers in.

However, it's not to say it's not impossible to do it in Java, it's just not wise.
05/12/2012 04:27 retarded jas161#15
Quote:
Originally Posted by fenrir2037 View Post
However, it's not to say it's impossible to do it in Java, it's just not wise.
Fixed.