fix parsing fixups chains

address was not incrementing correctly leads to wrong offset of symbol
This commit is contained in:
nganhkhoa 2023-06-07 15:56:36 +07:00
parent 887c53ed44
commit 91e5b1f6b3

View File

@ -151,11 +151,11 @@ func (mc *MachoContext) CollectBindSymbolsModern() []*ImportSymbol {
fmt.Printf("// 0x%x rebase=%d target=0x%x high8=0x%x\n", address, bind, ret1, ret2) fmt.Printf("// 0x%x rebase=%d target=0x%x high8=0x%x\n", address, bind, ret1, ret2)
} }
address += 8
if int(next) == 0 { if int(next) == 0 {
break break
} }
// because the pointer move up 8 bytes already so we minus 8 // because the pointer move up 8 bytes already so we minus 8
address += int64(next * 4)
mc.file.Seek(int64(next * 4) - 8, io.SeekCurrent) mc.file.Seek(int64(next * 4) - 8, io.SeekCurrent)
} }
mc.file.Seek(0, io.SeekStart) mc.file.Seek(0, io.SeekStart)