Date: Mon, 13 Feb 2017 22:37:34 +0100 From: Dimitry Andric <dim@FreeBSD.org> To: cem@freebsd.org Cc: Eric McCorkle <eric@metricspace.net>, "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org> Subject: Re: GELI BIOS weirdness Message-ID: <A29A9772-6E42-4C26-BC0D-45D966B69183@FreeBSD.org> In-Reply-To: <CAG6CVpWiLm0%2BzP_LBFFn9izE7gdnh=icbqpKqjNS5v2_68TMrA@mail.gmail.com> References: <6874308d-8892-2f03-d125-418949fd472c@metricspace.net> <F1DCB7BA-0E21-44A6-B80A-0E0429B235FE@FreeBSD.org> <d4d9f6b2-4aaf-1c61-f7d5-f8be908bcc73@metricspace.net> <919F6E39-476C-44B5-93EA-447D855921DE@FreeBSD.org> <CAG6CVpWiLm0%2BzP_LBFFn9izE7gdnh=icbqpKqjNS5v2_68TMrA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Yeah, but I'm interested in the symbols, otherwise it becomes hard to
follow. Also, I've looked at my own copy of gptboot.o, and it doesn't
contain those bytes at all. That said, my gptboot sources also don't
have the lines:
if (!(sc->sc_flags & G_ELI_FLAG_AUTH))
sc->sc_mediasize -= (sc->sc_mediasize % sc->sc_sectorsize);
else {
The only use of G_ELI_FLAG_AUTH is in sys/boot/geli/geliboot.c:
/* Store the keys */
bcopy(mkey, geli_e->sc.sc_mkey, sizeof(geli_e->sc.sc_mkey));
bcopy(mkey, geli_e->sc.sc_ivkey, sizeof(geli_e->sc.sc_ivkey));
mkp = mkey + sizeof(geli_e->sc.sc_ivkey);
if ((geli_e->sc.sc_flags & G_ELI_FLAG_AUTH) == 0) {
bcopy(mkp, geli_e->sc.sc_ekey, G_ELI_DATAKEYLEN);
} else {
but the assembly for the rest of the geli_attach() function looks pretty
reasonable.
-Dimitry
> On 13 Feb 2017, at 22:32, Conrad Meyer <cem@freebsd.org> wrote:
> "objdump -D -b binary -Mx86-64 -mi386 foo.bin" should work fine (no
> symbols, though...).
>
> Best,
> Conrad
>
> On Mon, Feb 13, 2017 at 1:16 PM, Dimitry Andric <dim@freebsd.org> wrote:
>> On 13 Feb 2017, at 21:58, Eric McCorkle <eric@metricspace.net> wrote:
>>>
>>> On 02/13/2017 15:36, Dimitry Andric wrote:
>>>
>>>> This disassembles to:
>>>>
>>>> 0: 66 0f 38 f6 f0 adcx %eax,%esi
>>>> 5: 31 c6 xor %eax,%esi
>>>> 7: 8b 4d 14 mov 0x14(%ebp),%ecx
>>>> a: 89 cf mov %ecx,%edi
>>>> c: c1 ff 1f sar $0x1f,%edi
>>>> f: 8b .byte 0x8b
>>>
>>> Note that this was truncated, so the sar and .byte are probably a
>>> truncated instruction.
>>>
>>> Also, when I had printfs in place, I could see the call instructions.
>>>
>>>> My first guess would be that the code simply jumped into garbage. But
>>>> can you post the complete .o file somewhere for inspection?
>>>
>>> Attached.
>>> <gptboot>
>>
>> Can you please post the file before it's been stripped and objcopied
>> from ELF to binary format? That makes it a lot easier to disassemble
>> and analyze... :)
>>
>> -Dimitry
>>
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
iEYEARECAAYFAliiJygACgkQsF6jCi4glqOroQCdHgFq7cC/znJ5WGlmFh5ZzAzp
wPcAoIxZoQVsX8zgSAlPfYCRznoXEbOt
=gFwf
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A29A9772-6E42-4C26-BC0D-45D966B69183>
