Datasheet and instruction codes for the micro, lot's of sheets of paper, and a pencil or two - and do it manually - depending how much code there is, it might not be too bad a job. A lot depends if the code was written in assembler, on in C - C produces really horrible assembler code, and makes it difficult to manually disassemble.
Or you could try writing your dis-assembler?, although it really depends on the processor how difficult it might be.
Long, long ago I wrote a PIC disassembler, as far as I know the first that was available?, and it was a fairly easy job because of it's RISC architecture - it took less than a week, and was built-in my PIC programmer software. I wrote the disassembler while I was waiting for a programmer PCB to arrive from Dontronics in Australia.
Are you wanting to change the actual code, or just the data or strings? - if it's just data or strings, then a simple HEX editor would do the job.