1

Please first read this My previous question, and then continue the following:

****

The binary file size loaded into IDA is 0x1e400 = 123k, and when I try to only change the "Loading address" to 0x2000000, IDA throws this error:
"The loading address should belong to RAM or ROM"

If I check the "Create RAM Section" and set the RAM size to 0x2000000, and set the "ROM start address" to 0x2000000, IDA detects most of the string references and function calls correctly but new problems arises:

  • IDA saves the work in a 2GB file which makes saving/loading slow.
  • Some references won't be detected correctly (when address fields does not have the 0x2000000).

  • (More important problem) IDA doesn't detect some instructions where before IDA was able to detect them correctly) and the bad thing is that IDA gives error when I try to convert them to instruction using MakeCode command.

How can I manually add those undetected instructions into instructions.

0

I was the one who advised you to change the loading offset. It sounds like weird stuff is happening as a result of the way you loaded the binary into IDA. I've had similar weird issues before when dealing with segments and loading addresses. Hopefully getting the segmentation working properly will resolve the issues with references/ability to define code.

There are a couple of similar, yet different methods you can use, most of them on the Edit->Segments submenu. The first thing I'd try would be loading the program at base address 0x0 like you did originally, then trying Edit->Segments->Rebase Program. If that didn't work, I'd try Edit->Segments->Move Current Segment, or Edit->Segments->Edit Segment.

  • Hello, Thanks, It worked by Rebasing the segments. – Gholi GholiZade Mar 23 '18 at 20:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.