.deb files are regular ar archives. You can manipulate the file by using ar command.
For example, I have a package called lynx_2.8.8dev.15-2_all.deb.
To extract the file, just run ar x <.deb.filename>. For example:
ar x lynx_2.8.8dev.15-2_all.deb
You will see 3 files being extracted, control.tar.gz, data.tar.gz and debian binary.
ls
returns:
control.tar.gz data.tar.gz debian-binary lynx_2.8.8dev.15-2_all.deb
debian-binary is a text file containing deb packaging version number.
cat debian-binary 2.0
control.tar.gz contained control, preinst and md5sums.
tar -tf control.tar.gz ./ ./md5sums ./control ./preinst
data.tar.gz is a compressed file containing the files which are going to be installed on the system.
tar -tf data.tar.gz ./ ./usr/ ./usr/share/ ./usr/share/doc/ ./usr/share/doc/lynx/ ./usr/share/doc/lynx/copyright ./usr/share/doc/lynx/changelog.Debian.gz