From: skier_
Just want to let you guys know im having success with Hooking Java Native API :)
Gonna do other stuff now, so gonna continue later on this project :)
[3360] java_Hooked_JNI_CreateJavaVM:89 -> ...
[3360] Hooked_NewStringUTF:29 -> str: AES/CBC/PKCS5Padding
[3360] Hooked_FindClass:35 -> class: javax/crypto/Cipher
[3360] Hooked_FindClass:35 -> class: java/lang/String
[3360] Hooked_GetMethodID:42 -> <init> ! ()V -> 47117080
Etc etc.. im not sure about Ray, but I hope Wizzup? haz seen Java Function Signatures before (ie: "<init>").
So.. this can be used to log stuff like.. classes used in Java though code made by 3rd party, which is highly likely to be obfuscated, will be harder to log.. But one could easily log api's such as encryption etc :)
Greetings, skier_
congratulations, you've managed to hook some of the JNI. it really is simple, however, when you look at the JNIEnv pointer as a pointer to a function table:
http://www.moparisthebest.com/smf/index.php/topic,397198.msg2949117.html#msg2949117reminded me a bit of SSDT patching. regardless, JNI functions are only called by native code that utilizes JNI. you cannot look into the JVM's behavior through JNI hooks; for that, you should look into JVMTI. also, <init> is the name of the method; to clarify, it is the internal method name used for class constructors. signatures, or as the JVM calls them,
descriptors, specify the type of members. e.g.
String name;
the descriptor of the above field would be Ljava/lang/String; while
Date produceSomeDateSomehow(long what, String is, boolean this) {
...
}
has a descriptor of (JLjava/lang/String;Z)Ljava/util/Date;
From: skier_
Having some good progress :)
Atm i capture all allocated objects :) even have a simple filter which will get the packets i want.
Now going to write a simple parser for the arguments (variabele based on signature), but thats not rly that hard :)
After that and some more h4x I will be able to actually inject packets (or in this case: objects) into the event queue's, for simulating key strokes :)
(Obviously there are a million other ways you could do this in win32, ie: keybd_event(), SendMessage(), but its fun to do it this way :))
If anyone got some nice ideas; feel free to tell me :)
Oh and all keyboard-related shit also applies to the Mouse and/or other Graphical shit.
Greetings, skier_
you can't use a JNI hook to intercept VM-wide object creation, only object creation through JNI. again, look into JVMTI.
From: lordsaturn
you can't really aim to say that runescape is nowhere in his mind while doing his research? pointless topic to argue over but your statement was far fetched.
Unless you were simply stating that his research involved hooking the jni, which in that case would be redundant in addition to all the posts skier_ has left us.
his interests are actually specific only to java, not runescape.