Reverse engineering Distributed Objects
Reverse engineering Distributed Objects
- Subject: Reverse engineering Distributed Objects
- From: Wade Tregaskis <email@hidden>
- Date: Mon, 15 Sep 2003 23:32:49 +1000
The title says what I'm effectively doing, and here's the problem - one
side sends the following request (shown with tcp header data), as a
result of a request for the rootProxy from the NSConnection..
0x0000 4500 00aa 5603 4000 4006 e648 7f00 0001 E...V.@.@..H....
0x0010 7f00 0001 c1c9 2328 019a 2994 e3cf 62de ......#(..)...b.
0x0020 8018 e000 6de4 0000 0101 080a 53e5 91c6 ....m.......S...
0x0030 53e5 91c6 d0cf 50c0 0000 0076 0000 0000 S.....P....v....
0x0040 0201 0610 1002 c1c8 0000 0000 0000 0000 ................
0x0050 0000 0000 0000 0001 0000 004e 04ed fe1f ...........N....
0x0060 0e01 0101 0101 0d4e 5349 6e76 6f63 6174 .......NSInvocat
0x0070 696f 6e00 0001 0101 104e 5344 6973 7461 ion......NSDista
0x0080 6e74 4f62 6a65 6374 0000 0001 0101 0102 ntObject........
0x0090 0101 0b72 6f6f 744f 626a 6563 7400 0101 ...rootObject...
0x00a0 0440 403a 0001 4001 0000 .@@:..@...
The proper reply that is sent back, using normal NSSocketPort's, is
this (shown with tcp header data):
0x0000 4500 0080 5604 4000 4006 e671 7f00 0001 E...V.@.@..q....
0x0010 7f00 0001 2328 c1c9 e3cf 62de 019a 2a0a ....#(....b...*.
0x0020 8018 e000 f754 0000 0101 080a 53e5 91c6 .....T......S...
0x0030 53e5 91c6 d0cf 50c0 0000 004c 0000 0000 S.....P....L....
0x0040 0201 0610 1002 2328 0000 0000 0000 0000 ......#(........
0x0050 0000 0000 0000 0001 0000 0024 04ce fe2f ...........$.../
0x0060 0e01 0100 0101 0110 4e53 4469 7374 616e ........NSDistan
0x0070 744f 626a 6563 7400 0003 5068 a400 0100 tObject...Ph....
The reply I'm getting with my custom NSPort subclass is this (as the
only NSData parameter passed in components in the sendBeforeDate
method):
<04cefe2f 0e010100 0000>
This repeats ad-infinum for each request made, the only difference
being the incrementing of the message sequence number in each
request/reply pair.
Can anyone shed some light on what the error I'm obviously receiving
is? Everything is setup identically in either case [from
NSConnection's point of view], and my custom NSPort of course fulfills
all the [documented and/or apparent] functionality of the normal
NSSocketPort. I cannot then fathom why the result is such.
This would probably require looking at by someone at Apple (*hint hint
nudge nudge beg beg*). I'm guessing 0100 0000h is the error (the 01
immediately before that is the aforementioned sequence number), so it
should be as simple as a quick search of a header file. Any help would
be very greatly appreciated.
As I think I've mentioned before, the class in question (with example
app to demonstrate this problem) is freely available from
<
http://www.sourceforge.net/projects/securedo/>.
Wade Tregaskis
-- Sed quis custodiet ipsos custodes?
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.