digression : MSDOS 7 and SHARE.EXE revisited (Miscellaneous)
> even if it makes DOS flush disk buffers for no apparent reason
A. Set up fake drives.
B. Find another call which doesn't result in disk access.
C. Screw it, the buffers are flushed by each process termination anyway!
> > Yes because you should use the pointer at 0:C1 instead of the SHARE.EXE
> > hooks
>
> I'm still waiting for you to show how you do this in practice
Citing myself along the way:
> I'd suggest you use the far jump at 0:C0 instead
> (the CP/M "CALL 5" compatibility entry).
> To ensure that this will actually retrieve correct pointers,
> check that at 0:C0 there is indeed a far jump.
if byte[0:C0] != EAh goto error
ptr = dword[0:C1]
> This either points directly to the DOS code segment or to one
> of the stubs in the DOS data segment. You can identify the stub
> and if it's one, you have to retrieve the address that it jumps
> to in its last instruction; this address points to the DOS code
> segment.
if (word[ptr] == 9090h) || (word[ptr] == 03EBh)
(
ptr = (ptr & FFFF0000h) | word[ptr+8]
ptr = dword[ptr]
)
Done. The high word of the variable ptr is now the segment the DOS code is addressed with.
In the last step, you might want to verify that, additionally, a near call (E8h) as well as an indirect far jump with CS: override (2Eh, FFh, 2Eh) follow the double-NOP or short jump of the HMA stub. (Note that the stub is used by DOS in case the DOS code might be relocated to the HMA (DOS=HIGH set) but the short jump will only be patched to the NOP sequence if it actually got relocated. (DOS=HIGH set and XMM loaded.))
I don't know whether the stub looks the same in MS-DOS 8, you have to look into this if you want to adapt this method.
You might also verify that the actual code pointed to by ptr now is the CP/M entry; it starts with some sequence of pop, push and mov instructions. Look at your kernel for this. The sequence probably didn't change between most MS-DOS versions except the offsets into the code and data segment.
> You could probably decide where to search for the patch location
> using the CALL 5 handler instead of the Int27 handler as well.
I'll leave this to you.
---
l
Complete thread:
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - Ninho, 11.12.2009, 00:17 (Miscellaneous)
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - ecm, 11.12.2009, 15:02
- new *FIXWRAP* for MS-DOS7+, aka smashing the bug - Ninho, 12.12.2009, 01:12
- FIXWRAP technical thread. News - Ninho, 12.12.2009, 16:05
- CM's questions, answered - Ninho, 12.12.2009, 18:22
- CM's questions, answered - ecm, 12.12.2009, 22:40
- CM's questions, answered - Ninho, 13.12.2009, 00:10
- CM's questions, answered - ecm, 13.12.2009, 00:51
- CM's questions, answered - Ninho, 13.12.2009, 10:32
- CM's questions, answered - ecm, 13.12.2009, 00:51
- CM's questions, answered - Ninho, 13.12.2009, 00:10
- CM's questions, answered - geoffchappell, 14.12.2009, 10:42
- CM's questions, answered - Ninho, 14.12.2009, 12:19
- CM's questions, answered - ecm, 12.12.2009, 22:40
- CM's questions, answered - Ninho, 12.12.2009, 18:22
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - geoffchappell, 14.12.2009, 10:41
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - Ninho, 14.12.2009, 11:49
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - geoffchappell, 15.12.2009, 16:55
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - Ninho, 15.12.2009, 19:08
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - Ninho, 17.12.2009, 16:35
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - geoffchappell, 15.12.2009, 16:55
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - Ninho, 14.12.2009, 11:49
- the DOS code segment hunt, results/questions - Ninho, 14.12.2009, 20:37
- the DOS code segment hunt, results/questions - ecm, 14.12.2009, 23:30
- the DOS code segment hunt, results/questions - Ninho, 15.12.2009, 00:59
- Aha! Share was a *red herring* ! Hunt over !!! - Ninho, 15.12.2009, 10:32
- Aha! Share was a *red herring* ! Hunt over !!! - ecm, 15.12.2009, 21:13
- Aha! Share was a *red herring* ! Hunt over !!! - Ninho, 15.12.2009, 22:32
- Aha! Share was a *red herring* ! Hunt over !!! - ecm, 15.12.2009, 23:05
- Aha! Share was a *red herring* ! Hunt over !!! - Ninho, 15.12.2009, 22:32
- Aha! Share was a *red herring* ! Hunt over !!! - ecm, 15.12.2009, 21:13
- the DOS code segment hunt, results/questions - geoffchappell, 15.12.2009, 16:56
- the DOS code segment hunt, results/questions - ecm, 15.12.2009, 21:19
- the DOS code segment hunt, results/questions - Ninho, 15.12.2009, 22:38
- the DOS code segment hunt, results/questions - ecm, 15.12.2009, 23:06
- the DOS code segment hunt, results/questions - Ninho, 16.12.2009, 09:22
- the DOS code segment hunt, results/questions - ecm, 15.12.2009, 23:06
- the DOS code segment hunt, results/questions - Ninho, 15.12.2009, 22:38
- the DOS code segment hunt, results/questions - Ninho, 16.12.2009, 20:24
- the DOS code segment hunt, results/questions - Ninho, 30.12.2009, 10:50
- the DOS code segment hunt, results/questions - ecm, 15.12.2009, 21:19
- the algorithm, sketched for review. Nitpicks ? - Ninho, 16.12.2009, 19:51
- the algorithm, sketched for review. Nitpicks ? - ecm, 17.12.2009, 16:19
- the algorithm, sketched for review. Nitpicks ? - Ninho, 17.12.2009, 17:14
- the algorithm, sketched for review. Nitpicks ? - ecm, 17.12.2009, 20:32
- the algorithm, sketched for review. Nitpicks ? - Ninho, 17.12.2009, 21:05
- the algorithm, sketched for review. Nitpicks ? - ecm, 17.12.2009, 21:13
- the algorithm, sketched for review. Nitpicks ? - Ninho, 17.12.2009, 23:16
- digression : MSDOS 7 and SHARE.EXE revisited - Ninho, 18.12.2009, 13:04
- digression : MSDOS 7 and SHARE.EXE revisited - ecm, 18.12.2009, 14:31
- digression : MSDOS 7 and SHARE.EXE revisited - Ninho, 18.12.2009, 17:19
- digression : MSDOS 7 and SHARE.EXE revisited - ecm, 18.12.2009, 18:19
- digression : MSDOS 7 and SHARE.EXE revisited - Ninho, 18.12.2009, 18:55
- digression : MSDOS 7 and SHARE.EXE revisited - ecm, 18.12.2009, 18:19
- digression : MSDOS 7 and SHARE.EXE revisited - Ninho, 18.12.2009, 17:19
- digression : MSDOS 7 and SHARE.EXE revisited - ecm, 18.12.2009, 14:31
- the algorithm, sketched for review. Nitpicks ? - ecm, 17.12.2009, 21:13
- the algorithm, sketched for review. Nitpicks ? - Ninho, 17.12.2009, 21:05
- the algorithm, sketched for review. Nitpicks ? - ecm, 17.12.2009, 20:32
- the algorithm, sketched for review. Nitpicks ? - Ninho, 17.12.2009, 17:14
- the algorithm, sketched for review. Nitpicks ? - ecm, 17.12.2009, 16:19
- the DOS code segment hunt, results/questions - ecm, 14.12.2009, 23:30
- HACKWRAP.SYS news, testing - Ninho, 20.12.2009, 02:44
- FIXWRAP.SYS 0.5 beta - released - please try it ! - Ninho, 23.12.2009, 00:07
- new HACKWRAP fix for MS-DOS7+, aka smashing the bug - ecm, 11.12.2009, 15:02