Извлечь java byte code из Oracle
От: C0s Россия  
Дата: 08.02.10 18:12
Оценка:
приветствую,

так вышло, что столкнулись с ситуацией, когда у одного java-класса, загруженного в oracle, потерялся исходник.
методом гугления нашёл запрос
select o.NAME, i.PIECE from obj$ o, sys.IDL_UB1$ i where o.type# = 29 and o.obj# = i.obj#

добавил к нему Like и нашёл даже интересуемый класс (замаплен в качестве реализации одной из хранимок).

однако, выяснилось, что содержимое этого объекта лишь похоже на байт-код, в реальности же им не являясь (отсутствует header CAFEBABE и вообще, первые примерно 300+ байт странные, когда остальное содержимое уже очень похоже на байт-код).

первые байты примерно такие:
0000000000: FF FC FE FA 01 00 00 00 │ 64 00 00 00 2B 1C 00 00
0000000010: 86 00 00 00 1D 00 00 00 │ 07 00 00 00 00 00 00 00
0000000020: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
0000000030: 00 00 00 00 AF 19 00 00 │ 02 00 00 00 1A 00 00 00
0000000040: 01 00 00 00 17 00 00 00 │ 10 00 00 00 00 00 00 00
0000000050: FE FF FF FF 22 00 00 00 │ 1E 00 00 00 FE FF FF FF
0000000060: 0E 00 00 00 00 00 00 00 │ FE FF FF FF 10 00 00 00
0000000070: 00 00 00 00 FE FF FF FF │ 13 00 00 00 00 00 00 00
0000000080: FE FF FF FF 16 00 00 00 │ 00 00 00 00 FE FF FF FF
0000000090: 13 00 00 00 00 00 00 00 │ FE FF FF FF 1A 00 00 00
00000000A0: 00 00 00 00 FE FF FF FF │ 0D 00 00 00 00 00 00 00
00000000B0: FE FF FF FF 2A 00 00 00 │ 16 00 00 00 FE FF FF FF
00000000C0: 10 00 00 00 00 00 00 00 │ FE FF FF FF 16 00 00 00
00000000D0: 00 00 00 00 FE FF FF FF │ 12 00 00 00 00 00 00 00
00000000E0: FE FF FF FF 1A 00 00 00 │ 00 00 00 00 FE FF FF FF
00000000F0: 27 00 00 00 13 00 00 00 │ FE FF FF FF 25 00 00 00
0000000100: 11 00 00 00 FE FF FF FF │ 30 00 00 00 1C 00 00 00
0000000110: FE FF FF FF 26 00 00 00 │ 12 00 00 00 FE FF FF FF
0000000120: 11 00 00 00 00 00 00 00 │ FE FF FF FF 10 00 00 00
0000000130: 00 00 00 00 FE FF FF FF │ 10 00 00 00 00 00 00 00
0000000140: FE FF FF FF 0F 00 00 00 │ 00 00 00 00 FE FF FF FF
0000000150: 14 00 00 00 00 00 00 00 │ FE FF FF FF 13 00 00 00
0000000160: 00 00 00 00 FE FF FF FF │ 13 00 00 00 00 00 00 00
0000000170: FE FF FF FF 1A 00 00 00 │ 00 00 00 00 FE FF FF FF
0000000180: FF FF FF FF FC FF FF FF │ FF FF FF FF FD FF FF FF


кто-нить может подсказать где искать настоящий байт-код или как подменить вышеуказанный хедер?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.