Пора видать мне на форуме отписать все что я о пиндосах думаю... Но ет лирика
Короче дуем для начала на
http://www.febooti.com/products/file...rs/hex-editor/ там много всего вкусного, но нам нужен HEX editor (он прям в свойства прописывается и данные копируюца в текстовом формате)
Итак чо я посмотрел и проверил... Значицо для начала компильнул класс типа
class HelloWorld{
public static void main(
String [] args){
System.out.println(
"Hello World!");
}
}
с помощью
jikes.exe и получил байткод
CA FE BA BE 00 00 00 30 00 1D
01 00 0A 48 65 6C 6C 6F 57 6F
72 6C 64 07 00 01 01 00 10 6A
61 76 61 2F 6C 61 6E 67 2F 4F
62 6A 65 63 74 07 00 03 01 00
04 6D 61 69 6E 01 00 16 28 5B
...................................
весь не привожу сами увидите, ну что открываем спецификацию и пробуем разобраться
ClassFile {
u4 magic;
u2 minor_version;
u2 major_version;
u2 constant_pool_count;
...........................
Разбиваем наш БК как я понял u2..u4 это кол-во байт, и согласно этому получаем
CA FE BA BE // MAGIC - магическое число u4(4 байта)
00 00 // Minor version - младшая версия Java u2(2 байта)
00 30 // Major version - старшая версия Java u2(2 байта)
00 1D // Constant_pool_count u2(2байта)
....................................
Так вот ребята, у кого старшая версия компилера (4.5) проверте мое предположение насчот u1..u2..u4 типов, если я прав, то тогда попробую расписать полностью формат CLASS файла по смещениям, потом попробуем в ручную создать, прям в байт-коде простенькое приложение, и если получица, будем хренарить уже компилер...
ЗЫ...
Магическое число прикольное - Кафе бабе, прям как у нас Кабак и Бабы :D