2

I'm working on this problem: Challenge 53

When compiling with cl c53.c /Fac53.asm /MD in VS2019 X86 Development Console and loading the .exe into OllyDbg, I found OllyDbg labels all segments of c53 as R:

enter image description here

Maybe there is some misunderstanding here, but why is the data segment not writable? Actually when I step into the program I can see the beginning of memory part of "Hello, world!" been overwritten by "Goodbye!" and there was no segfault (unlike in Linux there IS segfault and I'm still trying to figure out why, but that's a different question when checking c53.o in IDA it tells me the string "Hello World!" is in rodata so that segfault makes perfect sense):

enter image description here

To verify that the strings are indeed in data segment, not in rodata segment, I checked the assembly code:

_DATA   SEGMENT
$SG10125 DB 'Goodbye!', 00H
    ORG $+3
$SG10126 DB 'Result: %s', 0aH, 00H
$SG10129 DB 'Hello, world!', 0aH, 00H
_DATA   ENDS
2
  • 1
    Could you share the .exe file? Just upload it to VirusTotal and post the SHA256 of it here.
    – Utkonos
    Apr 24 at 4:55
  • @Utkonos sorry for being late. I somehow removed part of the VM so now it is a bit difficult to find it back. I'll try again once I build a new VM and redo Challenge 53. Apr 26 at 1:11

0

Your Answer

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

Browse other questions tagged or ask your own question.