NOTE - All of our original research was on the USB version of this unit, and we found very late in the game that that parallel version was highly similar. Almost everything that applies to the USB applies to the other unit as well.
Though there are two LEDs, there are no switches or jumpers: all setup (including IP address assignment) is done over the network. The manufacturer provides a nice Windows GUI tool for configuration, (PSAdmin), but we've found how to talk to the device to set the IP address directly. Once it's addressed, then the rest of the configuration is done via telnet or a browser interface.
When the unit powers up, it has IP address "1.2.3.4", which is of course completely bogus. But it's also listening for broadcasts to port 20540/udp, and if it sees a specially-formatted packet, it responds with a full configuration packet of 1030 bytes.
We've written a tool in Perl that can perform some of the required low-level device setup from the UNIX command line, obviating the Windows GUI tool.
Key components of the USB unit include:
But: the parallel unit has a 2000 mA supply as well (though not the tiny power brick), so we can't tell whether they're angling for a single power brick across the product line (minimizing inventory issues) or whether they really do draw that much current. We've not yet taken to measure the current drain.
Our analysis has shown that the USB unit has positively abysmal network performance in spite of what appear to be generally decent components.
By sniffing the network while PSAdmin is running, we've seen three kinds of packets. Two are very similar and are clearly device-discovery packets intended to search out all the print servers on the network. These packets are 48 bytes large, and mostly filled with zeros.
We're not sure what the difference is, and we believe that only the first one actually provokes a response from the devices we have on hand. PSAdmin sends 15 of these queries, alternating each time, spaced around 750msec apart. It's clearly trying to figure out just what's on the network by querying multiple times, and if only one is known to be attached, we can stop after we get the first one. We're guessing that that "ZO" queries are Netware related.+---+---+---+---+---+---+------------------+ | N | E | T |\0 |\4 |\1 | 42 more zeros | query device params +---+---+---+---+---+---+------------------+ +---+---+---+---+---+---+---+---+----------+ | N | E | T | P |\4 |\10|\1 |\0 | 40 more | query port params +---+---+---+---+---+---+---+---+----------+ +---+---+---+---+--------------------------+ | Z | O |\0 |\1 | 44 more zeros | +---+---+---+---+--------------------------+
It ARPs for the default gateway, then performs a number of
We've not found a way to disable these protocols that we are sure we aren't using. We're still looking.
Offset
(hex)Length Description 0x000 6 Header "NET\x00\x84\x00" 0x006 6 MAC (Ethernet) address 0x00E 18 Printer Name 0x022 4 IP Address 0x02A 7 Configuration password (in cleartext) 0x033 16 Firmware revision (ASCII) 0x153 15 Netware Printer name 0x184 4 Netmask 0x188 4 Default Gateway 0x18C 1 DHCP enabled? 0x18E 15 SNMP "Contact" information 0x19E 24 SNMP "Location" information 0x1D1 1 SNMP config bits
0x01: enable traps
0x02: enable auth traps
0x08: community string #1 R/O
0x10: community string #1 R/W
0x20: community string #2 R/O
0x40: community string #2 R/W0x1B7 12 SNMP community string #1 0x1C4 12 SNMP community string #2 0x1D2 4 SNMP Trap #1 IP address 0x1D6 4 SNMP Trap #2 IP address 0x1FF 32 Appletalk Zone 0x220 12 Appletalk Port Name 0x22D 20 Appletalk Printer Type A broadcast on a network with multiple print servers could return multiple responses, and to set the parameters we modify a few bytes in that response and re-broadcast it. Though all the units on the network will receive the packet, only the one whose MAC address matches will accept the update.
Once the configuration has been programmed, the device must be told to save and reset itself to make it fully take effect, and we've observed that PSAdmin sends this packet:
NOTE - we send this packet to the broadcast address, which probably all printservers on the network, but we found about this packet very late in the game and just weren't up to modifying the tool to send to the device itself. Sorry.+---+---+---+---+---+----------------------+ | N | E | T |\0 |\8 | 43 more zeros | reset device +---+---+---+---+---+----------------------+
Open Ports
- 23/tcp - telnet
- 80/tcp - http for configuration
- 515/tcp - lpr
- 631/tcp - ipp
- 20560/udp - configuration and setup
Navigate: More Tech Tips