Jump to content

jumper

Member
  • Posts

    1,842
  • Joined

  • Last visited

  • Days Won

    7
  • Donations

    0.00 USD 
  • Country

    United States

Everything posted by jumper

  1. >You mention only having VC5. I recall asking if VC4 or VC6 would be suitable, but don't think anyone offered an answer. Do you know what the minimum VC version is for building KernelEx? Building KernelEx requires the Feb 2003 DDK which in turn requires VC6. I do have VC6, but need to dust it off, apply service packs and the DDK before I can start playing with the KernelEx source code.
  2. With KernelEx 4.5.1 or 4.5.2 installed, DLLHOOK reports: Unknown version of KERNEL32.DLL. Otherwise (and demo limitations aside), it works great. It was very easy to write a DLL and export some stub functions--no DDK needed! I made modifications to DLLHOOK.INI similar to those above and was able to call a fictitious function in Kernel32 from a test app and redirect it to my DLL. For people who don't use KernelEx, DLLHOOK plus a DLL of stubs might get them by. I imagine this is basically how the Kernel Update Project got started. Unfortunately, since DLLHOOK doesn't coexist with KernelEx, it can't be used to extend KernelEx as I had hoped.
  3. >>There should be a way to just add a small expansion dll; perhaps this is what the undocumented api was meant to address. >My DLLHOOK Program does something similar to what you described but may not be compatable with KernelEx. I found DLLHOOK in your "Large File Emulator" (FILE64) package. The description in readme.txt and the example in dllhook.ini look very promising. If it can patch the Entrypoint Address Resolver to add a new function (not just hook an existing one), we might have a quick solution; if not, an import patcher will also be needed to remap the missing import in the user's PE to an existing (but rarely-used) one. I'll create a dll with a family of generic stubs and test with KernelEx.... >>I would like to see an .ini file where users can add "<module name>, <function name>, <return value>, <SetLastError value>" lines.... >In addition to the arguments you listed above, you will need to specify the number of calling arguments to properly clean up the stack upon return. Agreed. You wisely mentioned that in the other topic, but I still managed to overlook it! So others will know what we're talking about: If the emulated api function uses the Pascal calling convention (most likely), and the stub doesn't clean parameters off the stack as expected, there would be a small, temporary stack leak. If the stub is called enough times, the stack will overflow. Or if the calling function happens to not use a stack frame (for storing local variables), there would be no exit code to restore the stack and return address before it ends.
  4. >It suggests that the breadth of KernelEx application compatibility can be usefully expanded with a few added stubs. Rebuilding all of KernelEx just to add a stub is overkill. There should be a way to just add a small expansion dll; perhaps this is what the undocumented api was meant to address. I would like to see an .ini file where users can add "<module name>, <function name>, <return value>, <SetLastError value>" lines that would be loaded by KernelEx and turned into new stubs on-the-fly. (Core.ini can almost do this now....) I haven't tried building KernelEx yet because I'm still using VC5. My response to loblo' s little hex hacks was to create a tool to automate import table patching. Unfortunately it mutated into a full-blown dependency walker before I could get it released. I'm almost done with minf, so I'll clean up and formally release ImportPatcher next, then get to work on KernelEx. -jumper
  5. A while back I almost asked if someone had written a tool to make these checks and do any needed patching--then realized it would be tantamount to volunteering! ← minf - minimize an INF file
  6. minf (minimize INF file) latest beta: minf.04.exe Done:Convert UTF-16 (Unicode) to UTF-8 (ASCII)Abbreviate lengthy section namesRemove comments and white spaceMinimize variable namesTo do:Minimize section namesRemove non-9x sectionsCreate 9x sections from 2k/XP if missingWhy?To fix poorly tested Win9x installer information (INF) files.Enable 2K/XP WDM drivers to possibly work in 98/SE/ME.Addresses issues raised by jds and jaclaz in:← Driver compatibility issues for W9XSuggested usage: Create a shortcut to minf in your Windows SendTo folder and send INF files to it using the right-click context menu. minf.01.exe implements these first two features: Convert UTF-16 (Unicode) to UTF-8 (ASCII) If the first two bytes of the file are FF FE or FE FF, those two bytes plus every other byte thereafter are removed.Abbreviate lengthy section names All section names are checked for length. Any over 28 characters are abbreviated to 10..16 and all references patched.minf.02.exe adds support for: Remove comments and white space All comments and (non-quoted) white space are removed and new-lines reduced to a single line-feed.minf.03.exe adds: Minimize variable names All variable names are reduced to the range A-Z,A0-ZZ and references patched. A 75KB test file was reduced to 50KB!minf.04.exe adds: + If any section names are squashed to 28, the original size is now reported. - Files not terminated with a line feed are now handled successfully. To do: Minimize section names It should be possible to do something similar to variable names, but decoration parsing will be required.Remove non-9x sections Once I fully understand section naming and decorating conventions, it should be possible to completely remove sections not needed by Win9x.Create 9x sections from 2k/XP if missing If no Win9x sections exist, an attempt could be made to adapt a 2K or XP section.
  7. It's possible but impractical to emulate MMX in software on non-MMX systems. Remember that we're talking about slow processors working with small amounts of memory (and really slow swap drives). The developers of any app that refuses to run on a non-MMX processor thought it would run too slowly without MMX; to emulate MMX would be to run an app at a very small fraction of the speed its developers thought was too slow! Early software that took advantage of MMX could also run without it. Try early versions--they might just work!. Possible hardware upgrades that would also benefit the OS and all software: Socket 8 mainboard: Pentium II Overdrive ($75-$90) Socket 7 mainboard: Pentium-MMX 233 ($20) Socket 5 mainboard: Winchip ($30) or Pentium-MMX Overdrive ($100) Socket 4 mainboard: upgrade mainboard and CPU ($0-$100) Impractical software solutions: Use virtualization softwarenone for Pentiums without MMX [*]Write an error handler that further slows down an already slow system each MMX app would have to be patched to NOT check for MMX
  8. My DIY 2GB 60x SSD experiment from two years ago: P2-350 booted Win98se to desktop faster than the 10GB HDD I cloned the system from.
  9. tad -s seems to work correctly, but in a DOS box. ClockMon is for NT, might work in 9x, but uses 'giveio.sys' helper driver. Both come with source code.
  10. ...but trying to get the 2K version of coLinux working on 98 with the help of KernelEx would be worthwhile considering the number of Linux apps we might gain access to!
  11. This modified version of CDFS.VXD appears to be based upon the Win95 driver: Version: 4.00.1030 Description: CDFS Virtual Device (Version 4.0) Copyright: Copyright © Microsoft Corp. 1988-1995 Several years ago I tried it on two of my 98FE systems. It did do quite nicely what it claims (WAV files for all audio tracks), but prevented me from reading some of my important CDR's. Removing this driver and restoring the 98FE version allowed me to read my CDR's on both systems again. I vote: (or make it optional with a caveat in the description.)
  12. In Win98se, Windows\System\SETUPAPI.DLL imports CM_Locate_DevNodeA from CFGMGR32.DLL. Win2k/XP+ use the Unicode version: CM_Locate_DevNodeW. Either your Windows\System\SETUPAPI.DLL has been overwritten with an NT version, or (more likely) the device driver's installer has the NT version packaged with or inside it. Delete the NT version and this error should go away. Any other DLL's that are packaged with the driver that also exist in Windows\System will likely also need to be deleted. Edit: Alas, it's not that simple. It seems that in XP, SETUPAPI.DLL exports both CM_Locate_DevNodeA and CM_Locate_DevNodeW and forwards the calls to CFGMGR32.DLL. In SE, SETUPAPI.DLL doesn't provide that service--apps must link directly to CFGMGR32.DLL for those functions. It should be easy to mod KernelEx to do the forwarding, but KernelEx is no longer being developed. And there are probably other NT dependencies lurking just behind this first error message.... If you could post the installer filename and size, plus the version strings from the Properties sheet, I'll try to find it online and analyse the dependencies needed to get the it to run. (FCC / UPC numbers would also be great!)
  13. Wow! IE6.0 full is both at oldapps and oldversion! I've used both sites before--must have been wanting 5.01 (which they don't have) when I looked. And I see now that evolt has all versions from 1.0 through 6.0sp1 (plus some SDK's). RP9 needs IE6 to function correctly, so both upgrades are now on my ToDo list. Thanks, dencorso!
  14. My system: VIA C3 Ezra "Gigapro" @ 735MHz (MMX, 3DNow!) 256MB SDRAM Win98SE My browsers: Firefox 2.0.0.20 AdBlock Plus 1.0.2 + Element Hiding Helper 1.0.5 QuickJava - Java and JavaScript enable buttons Opera 10.63 for reading Twitter too many annoyances for everyday use Off By One 3.5.d - overview jaw-dropping fast, even on slow machines simple tabbed interface and options are very easy to use doesn't suffer from "Stop script" errors because it doesn't support JavaScript! layout is HTML 3.2+frames only--no style sheets. great for news sites with bloated layouts and forums Internet Explorer 5.0 Win98se default useful for JavaScript compatibility testing can't find the 5.0.1 update needed by some software installers can't find unbranded IE 6.0 (only updates!) Has anyone tried Pale Moon 2.0.0.20? It should be just like Firefox, only faster.
  15. finesse29.exe FineSSE 29 features: Multiple modes of process creation and attachment:JIT debugging using Process Id and Event handle (as before, DOTP) attach to running process using Process Id (DOTP) create process in debug mode (DP, DOTP) create process in normal mode with immediate or delayed debug attachment (DOTP) [DOTP=Debug Only This Process, DP=Debug(this and child)Process(es)] [*]Verbose listing now includes all Debugging API messages [*]Listbox log can be moved / resized / maximized [*]Logfile can be created (up to 99) in FineSSE folder Sample log files: FineSSE-JIT.log.txt FineSSE-DP.log.txt Command line options: /* Logging options: */ -lb display listbox log -lf output to logfile -lbf listbox and logfile (default if 'v' and not 'lb' nor 'lf') -v verbose listing /* Just-In-Time debugging options (WIN.INI): */ -p %u Process Id placeholder -e %u JIT event handle placeholder /* Attach to running process option: */ -p <decimal> Process Id /* New-process creation options: */ -o create process in DOTP mode -a create process in normal mode, then attach immediately -a<ms> create, then Sleep <ms> milliseconds before attaching <filename> create process from filename (must be last parameter; quoted if containing spaces) /* [...Examples coming soon...] */
  16. Excellent discovery! Since reading your post yesterday, I've being struggling with how best to respond even as I ready FineSSE29 for release. I see three main issues: getting VLC to run on Win9x solving the illegal instructions / cpu compatibility problem solving the KernelEx / FineSSE compatibility problem Possible solutions: KernelEx is the easy solution here. Porting the source code (maybe just the qt4 interface) is the hard way. The [main] section of the large config file has cpu extension flags, but disabling them seemed to have no affect. FineSSE can handle many of the instructions, but needs more work. The VLC exception handler could be modified to punt illegal instructions to the system. We start debugging! I did get VLC1.1.9 to run to the point where the JPEG plugin would execute an illegal instruction that FineSSE doesn't yet support, so I can start work on (2b). Now for some (3b) details. I tweaked FineSSE to allow it to attach to a running process. Using TaskInfo2000 (a process viewer), I can right-click on a process and select "debug". Once I get FineSSE29 posted, you will be able to launch VLC normally and then attach FineSSE to it after the window and menus are initialized. Unfortunately, my C3 chokes on the CMOVs and FUCOMIPs used by the UI. I have to use FineSSE to launch VLC: FineSSE+vlc.log.zip You can help: To determine if the window and menu problems are unique to FineSSE, try running VLC inside another debugger such as VisualStudio. I also found that if ddhelp.exe is loaded with different KernelEx compatibility options than VLC, I get an Access Violation at 8XXXXXXX. This could be a huge problem if two media apps that require different KernelEx options are run at the same time!
  17. VLC 1.1.9 has an internal error handler that often quietly terminates the app when an illegal instruction is encountered. It reports the error as "handled" rather than passing it to the system default handler for debugging. To enable FineSSE to have the first chance to handle the errors, launch VLC by dropping it onto FineSSE. Or do as I did and modify the VLC desktop shortcut target to be: "C:\finesse.exe" -v "C:\Program Files\VideoLAN\VLC\vlc.exe" Answer "No" if asked to send a bug report. I have KernelEx 4.5.1 installed. VLC 1.1.9 will launch on my VIA C3 but opens off-screen. After moving it back on-screen (every time!), the menus don't open. I'll try VLC 1.1.10 soon. -jumper
  18. Hello Charles, >I run an Intel P III (Katmai) with MMX and SSE supported (but not SSE 2, SSE 3, ...). >Does FineSSE will still be able to handle some specific Illegal Instructions, or is it useless in such case? FineSSE does not currently handle any instructions that would cause an error on a PIII. If you encounter an Illegal Instruction error, please send me the details and I'll see if I can add the support. >BTW, when we use it with Win.ini, do we still have to add "-v" at the end of the 'Debugger' line? No. FineSSE without "-v" will run silently in the background. With it, FineSSE will display an output window and fill it with a list of the patches it makes. -jumper
  19. FineSSE27a Latest version will be posted here. New Features: Support for multi-threaded apps prefetch (3D Now!) prefetch(n)tx -> prefetch (for better performance) Image attachment for use above:
  20. I installed GOM 2.1.28.5039, but it didn't like my system. Lots of systems freezes where Ctrl-Alt-Del wouldn't even respond. Performance worse than MediaPlayer2 when it did work. Some Access Violations, but no Illegal Instructions. This C3 system is the only one I have still running that doesn't support CMOV, so I won't be able to test GOM. But it just occurred to me that I can add a gratuitious CMOV to the inner loop of one of my own apps for performance testing. Right. Also, if the CMOV is near the start or end of a procedure, there might be five free bytes for a far jump within range of a near jump (2 bytes). A string of CMOVs would be the easiest to parse and would also yield the best performance. Ideally the upper word of the far jump address would also form an illegal instruction or breakpoint in case it is a target address itself. I'd love to study all or part of this log if you want to email it to me. I'd have a better idea of what instruction sequences to target first.
  21. Thanks for testing GOM with both P6CPU.VXD and FineSSE, rloew. I suspected that P6CPU.VXD would handle GOM's cmov errors with better performance than FineSSE. GOM is now the first program I know of that uses cmov in a performance loop, so it will be an important test for us. I will install it and see if I can modify FineSSE to patch, rather than emulate any critical cmov intructions.
  22. Yes. If you add these lines to your Win9x WIN.INI, FineSSE will auto-launch whenever any app or plugin has a debug-able error. No. (Unless the app or plugin does some now-useless II exception handling that you would like to avoid, like Flash 9 r289.) FineSSE should launch automatically when needed by plugins and other sub-processes. However, you can also drop your browser's executable onto FineSSE to avoid built-in II handling the likes of "An error has been encountered, you should reboot your computer." Only if the error you are encountering is an Illegal Instruction. FineSSE was designed to solve the most common Illegal Instruction errors I've seen reported on major forums. I expect to continue updating it as new II errors are reported.
  23. EIP = 69852be2 Bytes at CS:EIP: 89 82 94 00 00 00 8B 93 60 02 00 00 83 FA 08 7Fand Patch Log: 69852BD6:0F 48 C2 8B 54 24 60 C1:CMOV3 =>79 02 8B C2 E9 E0 1B 45 show that the AV does follow closely after the II patch and both use the edx register: [edit] 69852BD6 - 0f 48 c2 - cmovs eax, edx ;often confusingly reported as: cmovs %edx, %eax [/edit] ... 69852BE2 - 89 82 94 00 00 00 - mov [edx+00000094], eax CMOV3 indicates the cmovs is properly detected as a three-byte instruction. [edit] "cmovs eax, edx" should be emulated as: 79 02 jns After 8B C2 mov eax, edx After: E9 .. .. .. .. jmp 69852BD9 FineSSE is emulating this correctly [/edit] Agreed. A screen capture would have been acceptable, but on-the-clipboard is best!
  24. It appears that FineSSE handled one illegal instruction before the access violation. FineSSE does not currently address access violations, thus the error report. To determine if the access violation occurred because of a bad patch of the illegal instruction (known to happen in early versions), we need to know more about the patch. Fortunately, several days ago I rev'ed FineSSE, adding a "-v" option to reenable a debug window I was using during development: finesse23.exe Add the -v option to the FineSSE command line in WIN.INI (or the equivalent to the registry), no restart required!: [AeDebug] Auto=1 Debugger=C:\Program Files\finesse23.exe -p %u -e %u -v Please enable -v in the new version, retest, and post the text of the Patch Log. Thanks.
  25. Great!...however if might be due to the latest KernelEx instead of FineSSE (see overlapping post above). For IE, you probably need a separate installer. Check the Flash download pages again: http://get.adobe.com/flashplayer/ http://get.adobe.com/flashplayer/otherversions/ The Adobe site recommends doing an uninstall of any old version and reboot before installing new software: http://kb2.adobe.com/cps/142/tn_14266.html I seem to recall that Shockwave 11 uses Flash 10. If Firefox is reporting Flash as version 10, that would be correct.
×
×
  • Create New...