Disabling Consistency Checks

Paul Pluzhnikov ppluzhnikov@gmail.com
Thu Dec 4 01:11:00 GMT 2014


On Wed, Dec 3, 2014 at 3:39 PM, Eric Neblock <c_eric@sbcglobal.net> wrote:

> On 12/02/2014 09:26 PM, Carlos O'Donell wrote:
>> On 12/02/2014 09:52 AM, Eric Neblock wrote:
>>>   Inconsistency detected by ld.so: ../elf/dl-runtime.c: 79: _dl_fixup:
>>> Assertion `((reloc->r_info) & 0xffffffff) == 7' failed!
>>
>> This means you corrupted memory and the relocation for the PLT
>> slot is not a PLT relocation.
>>
...
> I am using ptrace; however, the method I'm using is:
>
>  ptrace(PTRACE_POKETEXT, PID, ADDR_TO_BREAK_AT, (ORIG_INSTRUCTION &
> 0xFFFFFFFFFFFFFF00) | 0xCC)

Since this corrupts PLT relocation, your method of finding out
ADDR_TO_BREAK_AT is likely incorrect.

You may want to disable ASLR, then print the ADDR_TO_BREAK_AT, then use GDB
and find out what that address actually points to (gdb "info symbol 0xNNNN"
command), as well is where the breakpoint should have been "break foo"
then "info break".


-- 
Paul Pluzhnikov



More information about the Libc-help mailing list