(self)
| 526 | self.PEB = peb_obj |
| 527 | |
| 528 | def init_ldr_data(self): |
| 529 | ldr_struct = make_ldr_data(self.ql.arch.bits) |
| 530 | |
| 531 | ldr_addr = self.structure_last_addr |
| 532 | nobj_addr = self.ql.mem.align_up(ldr_addr + ldr_struct.sizeof(), 0x10) |
| 533 | |
| 534 | ldr_obj = ldr_struct.volatile_ref(self.ql.mem, ldr_addr) |
| 535 | ldr_obj.InLoadOrderModuleList.Flink = ldr_addr + ldr_struct.InLoadOrderModuleList.offset |
| 536 | ldr_obj.InLoadOrderModuleList.Blink = ldr_addr + ldr_struct.InLoadOrderModuleList.offset |
| 537 | |
| 538 | ldr_obj.InMemoryOrderModuleList.Flink = ldr_addr + ldr_struct.InMemoryOrderModuleList.offset |
| 539 | ldr_obj.InMemoryOrderModuleList.Blink = ldr_addr + ldr_struct.InMemoryOrderModuleList.offset |
| 540 | |
| 541 | ldr_obj.InInitializationOrderModuleList.Flink = ldr_addr + ldr_struct.InInitializationOrderModuleList.offset |
| 542 | ldr_obj.InInitializationOrderModuleList.Blink = ldr_addr + ldr_struct.InInitializationOrderModuleList.offset |
| 543 | |
| 544 | self.ql.log.info(f'LDR is at {ldr_addr:#x}') |
| 545 | |
| 546 | self.structure_last_addr = nobj_addr |
| 547 | self.LDR = ldr_obj |
| 548 | |
| 549 | def add_ldr_data_table_entry(self, dll_name: str): |
| 550 | entry_struct = make_ldr_data_table_entry(self.ql.arch.bits) |
no test coverage detected