I'm disassembling a packed 16 bit DOS MZ EXE.
To deobfuscate it, I've set a breakpoint in DOSbox at the end of the unpacking routine, let it run, and made a memory dump. This way I essentially got the deobfuscated EXE image. Then I loaded this image in IDA.
Obviously, there's no MZ header anymore, so IDA can't know the application's entry point and initial values of CS, SS and other segment registers. I, however, do know these values, and I'm willing to supply them to IDA. To do this, I hit Alt+G and type the register's value.
However, instead of showing
assume ds:<value>, IDA shows
seg000:1AEBC assume es:nothing, ss:nothing, ds:nothing
Another question. Why there is no option to set the value of CS register? Consider code which contains near jumps. Without knowledge about the CS register value, IDA won't be able to proceed with disassembling. But I do know what value CS has at this specific point! How do I supply this information to IDA if the
Segment Register Value dialog window doesn't have CS option?