나는 안드로이드 애플 리케이션에서 리버스 엔지니어링을하고있다. android com.db4o 클래스에서 serialize 된 sqllite3 blob 데이터를 deserialize해야합니다.순수 파이썬에서 파이썬 - javaobj로 자바 역 직렬화를 구현 하시겠습니까?
코드 google 사이트에 python-javaobj 프로젝트가 있습니다. http://code.google.com/p/python-javaobj/
그러나 구현은 약간 까다 롭습니다.
방법 1. 파이썬에서 sqllite로 액세스하십시오.
import sqlite3
conn=sqlite3.connect('sqlite3.db')
c = conn.cursor()
c.execute('select binaryfield from sqltable')
blob=c.fetchone()
blobstring=blob[0]
import javaobj
marshaller = javaobj.loads(blobstring)
오류 메시지가 궁금하고
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/site-packages/javaobj-0.1.0-py2.6.egg/javaobj.py", line 44, in loads
File "/usr/lib/python2.6/site-packages/javaobj-0.1.0-py2.6.egg/javaobj.py", line 155, in __init__
File "/usr/lib/python2.6/site-packages/javaobj-0.1.0-py2.6.egg/javaobj.py", line 178, in _readStreamHeader
IOError: The stream is not java serialized object. Invalid stream header: 00000005
는 다른 접근 방법이있다.
일반적으로 자이 썬이 더 간단할까요? 어쨌든 먼저 객체가 표준 직렬화 프로토콜로 직렬화되었는지 여부를 먼저 확인합니다. 프로토콜이 열려 있고 복잡하지는 않지만 Java 프로그램을 작성하는 것만으로도 분명히 간단합니다. – Voo
예, jython을 사용하고 싶습니다. 하지만 제 제작 환경은 자바를 지원하지 않습니다. 나는 후자의 sugeestion을 시도 할 것이다. 감사. – nikescar