Лол

2,955
12
Кто то говорил что я не умею юзать ASM. Так вот, он глубоко ошибся.
public class RecordTransformer implements IClassTransformer {

@Override
public byte[] transform(String name, String transformedName, byte[] bytes) {

if ("net.minecraft.item.Item".equals(name))
{
ClassReader cr = new ClassReader(bytes);
ClassNode cn = new ClassNode(Opcodes.ASM4);
cr.accept(cn, ClassReader.EXPAND_FRAMES);
for(FieldNode field : cn.fields) {
if(field.name.equals("recordCat")) {
try {
field.value = ItemRecord.class.getConstructor(Integer.class, String.class).newInstance(2001, "lol");
} catch(Exception e) {
e.printStackTrace();
} } }

ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS);
cn.accept(cw);
return cw.toByteArray();
}

return bytes;
}

}
 
Был бы еще урок вменяемый где-нибудь по этому ASM. Что код в итоге делает - понятно. Но вот как влезть туда не зная четкой его логики, это вопрос...
 
Я могу рассказать. ASM - это такая забавная штука, повзоляющая менять байткод нужных тебе классов под себя.
[merge_posts_bbcode]Добавлено: 11.07.2014 17:21:18[/merge_posts_bbcode]

Ферстик, что молчишь то. Я же помню,  что это говорил ты. 
Я всегда буду называть тебя ферстиком, не смотря на твой нынешний ник.
 
1. Начитался туторов и пришёл хвастаться.
2. Скомпилируешь - не запашет. Ибо обфускация.
 
1. Туторов я не читал, просто посмотрел библиотеку ASM и её использование в фордже.
2. Знаю, просто лень искать деобфуцированное имя.
 
KIXTxmi.png

Ты прости, но я в голос обосрался
 
RaVeN_II написал(а):
Dragon2488 написал(а):
RaVeN_II написал(а):
Dragon2488 написал(а):
Ну хорошо, посмотрим на тебя.
только позже, я обьясню (,) как заменить класс,а ещё позже (,) метод стандартного майна
Ой!
Лол)
 
Итого, странные проблемы с попаданием меня на форум в течении двух дней вылились в дохреннилионы непрочитанных тем и воскресшего равена. Ну играйтесь, мне очень лень.
 
Назад
Сверху