From: Clem Cole <clemc@ccc.com>
To: segaloco <segaloco@protonmail.com>
Cc: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: [TUHS] Re: UNIX Disassemblers and other RE Tools
Date: Fri, 25 Aug 2023 16:33:08 -0400 [thread overview]
Message-ID: <CAC20D2OOBhoEixM4Ofq6fcKrYMs=G9GQ_YzApicQvX1M5_qpwA@mail.gmail.com> (raw)
In-Reply-To: <0brzeViMphXChfHcG_z67mvox9cjHK0KEt6b0VPndBMnBcJ4ywJQFoiJ-yMaR2x2FAnxqD8RjdVCf01kftJkhw0AopHnGcoY8yCpbujx56s=@protonmail.com>
[-- Attachment #1: Type: text/plain, Size: 3464 bytes --]
below...
On Fri, Aug 25, 2023 at 3:51 PM segaloco via TUHS <tuhs@tuhs.org> wrote:
> Hello, I've been doing some research on the history of disassembly lately,
> tools available historically, today, and what sorts of developments have
> been made regarding utilities and systems for taking a machine-code binary
> and working it back to some semblance of source code.
>
> So in the early days UNIX had das(I), a PDP-11 disassembler I believe
> written by Ken (he's OWNER in the manual) with very little information
> other than "it exists". Fast forward to the UNIX 4.1 manual in 1981 for
> the 3B20S and there is dis(1), a 3B20 disassembler. Other such manuals
> feature dis(1) versions for other 3B targets.
>
> Was a disassembler ever considered part of the standard binary objects
> toolkit with the assembler, linker, etc.
not to my memory - although some of the debuggers could. IIRC, the DDT
that was on the Harvard tape knew about it. I also remember on that tape
was a PDP-11 disassembler. Phil Karn wrote a table-based one for UNIX
when we were students - but it was aimed at 8-bit micros. It could do
8080/8085 and Z80; if I remember, it could also do MOS6502 and M6800. It
had a feature that it could take an external symbol table and turn out code
that was reasonable to reassemble. [ I may have a copy if it squirreled
away ].
That said, while they we not part of the core tool kit, by the time of
BSD4.2 there were a couple of disassemblers kicking around the USENET. I
remember one for the Vax and another for the 68000. You might do a grep for
dis-assembler in the USENET archives for comp.sources
> or was that the sort of thing that was more niche and therefore just kinda
> cropped up when/if someone decided to write one?
exactly - need driven. Phil wrote his when we were trying to pull apart a
ROM for a tape controller. It had a funky interface on it that was not
well documented and what we did have, was wrong. So, disassembled enough
of the ROM that we could changed it.
> Were there legal concerns to be grappled with when producing a
> disassembler?
Mumble ... by the mid-80s/late-90 people we disassembling code for game
controllers and PCs. So many manufacturers started adding words in the EULA
saying that was a no-no. But I don't remember worrying about it much when
I was a student 10-15 years before that.
> Were such tools ever shipped or did they only appear in the manuals as
> they were technically up in the code base, just not commonly distributed or
> used? Also, was there any thought given during the development of C to
> producing "decompilers" as has been becoming more common lately? Or was it
> a foregone conclusion that C to assembly is a "lossy" conversion and going
> the other direction couldn't be fully automated.
>
Again - in V6/V7 with DMR's compiler, it was not always easy, but the code
generally was pretty straightforward.
Post Wulf's 'Green Book' on compiler optimization and we started to have a
generation of BLISS-style optimizers pretty much everywhere, I think those
compilers really started refactoring code plus instruction sets got more
sophisticated, so I think it started to get harder and harder to
reconstruct.
But I'll defer to someone like Paul W or Steve Johnson who loved building
those style of tools.
>
> Thank you for any insights!
>
> - Matt G.
>
ᐧ
ᐧ
[-- Attachment #2: Type: text/html, Size: 5926 bytes --]
prev parent reply other threads:[~2023-08-25 20:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-25 19:51 [TUHS] " segaloco via TUHS
2023-08-25 20:28 ` [TUHS] " Rich Salz
2023-08-25 20:33 ` Clem Cole [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAC20D2OOBhoEixM4Ofq6fcKrYMs=G9GQ_YzApicQvX1M5_qpwA@mail.gmail.com' \
--to=clemc@ccc.com \
--cc=segaloco@protonmail.com \
--cc=tuhs@tuhs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).