The google can't do math


  • 🚽 Regular

    I think I tried them all. But if anyone knows of one that works I'd love to know!


  • Discourse touched me in a no-no place

    @Cursorkeys said:

    I think I tried them all. But if anyone knows of one that works I'd love to know!

    You should totally write your own!


  • Discourse touched me in a no-no place

    Sometimes I don't like replying again, but I want to make sure that an edit to my post doesn't get skipped, so, have another post. I'm sure this has nothing to do with wrestling with @accalia for that badge.

    I googled this. It says it has "direct access to LPT ports." While I might have a computer with one available at work, I don't have any hardware with which to verify whether it does what you want or not.


  • FoxDev

    @FrostCat said:

    I'm sure this has nothing to do with wrestling with @accalia for that badge.

    :frystare.wav:



  • @accalia said:

    :frystare .wav:

    The sound of one Fry staring?


  • FoxDev

    i was wondering if anyone wouls pick up on that file extension.

    😆

    👏 well done good sir. have a like.



  • I often get called on for my scrutiny.

    Even just today, a co-worker asked me to look at something, since he knew that I have a careful eye. He had a SQL query that he thought was he had copied/pasted in the same SSMS query window, but was getting different results.

    Turns out that in a lengthy query, one line made all the difference:

    RecordType = 'Signature'

    vs

    RecordType <> 'Signature'

    Then again, I suggested that you could just use BeyondCompare and do it quickly next time. 😆


  • 🚽 Regular

    @FrostCat said:

    You should totally write your own!

    Oh god no, I found some code online when this project was live and it was wall to wall blue screens when I attempted to complete it and make it work.

    @FrostCat said:

    It says it has "direct access to LPT ports

    Thanks but that seems to be a library for use in 32-bit programs as far as I can see.
    I need something that rewrites the I/O permissions map (for a program running in the NTVDM or whatever it is in Win 7) so an existing program can run in blissful ignorance.


    As an aside, the program is incredible hostile in general. It hooks INT 1 and 3 to stop you single-stepping and attempting to neuter that is detected by some mechanism I never managed to successfully kill. It also does some calculations in the interrupt code which is then used by the dongle bits. It was over my head but I imagine it's also some sort of extremely annoying anti-debugging trick. The dongle protection scheme itself is even more fun, the dongle provides a hashing function for the program which then uses those as jump vectors in nearly every function.

    The funny thing is it's an ultra-specialised program that probably only ever had a few hundred users. It wasn't even that expensive to buy.

    Edit: Even when it was running properly on its original DOS machines it liked to randomly give you 'dongle protection' errors and freeze. Usually after you had a couple of hours of unsaved work. I don't miss having to use it myself!


  • Discourse touched me in a no-no place

    @accalia said:

    :frystare.wav:

    I LLOLed (which annoyed my son.)


  • Discourse touched me in a no-no place

    @Cursorkeys said:

    I need something that rewrites the I/O permissions map (for a program running in the NTVDM or whatever it is in Win 7) so an existing program can run in blissful ignorance.

    Huh. Would GiveIO help? I'm just, admittedly, kind of throwing out guesses here.


  • 🚽 Regular

    It would be worth a try I think after Googling it. I honestly can't remember which ones we tried originally.

    It would probably be a good time to revisit this project before the hardware dies.


  • Discourse touched me in a no-no place

    @Cursorkeys said:

    It would probably be a good time to revisit this project before the hardware dies.

    Yeah, that's usually the case.


  • 🚽 Regular

    Heh, I usually get asked to help after the smoke has already come out.

    I managed to fix an ancient HD on a piece of process equipment by buying the same drive from eBay and swapping the PCBs over. I still can't believe that one actually worked.


  • Discourse touched me in a no-no place

    I've heard of that...including people who stock up on PCBs because they have al ot[1] of old hardware.

    [1] Uh...I did it on purpose to avoid the alot.



  • @Cursorkeys said:

    It would probably be a good time to revisit this project before the hardware dies.

    Windows 98 can be made to run very nicely in a VM. I've used that fact to save a customer from needing to spend tens of thousands of dollars on CNC routing table upgrades when the Win98 box required to run his old one died.

    The old controller talked to the routing table via a largely undocumented ISA plug-in card provided by the table manufacturer, which had long since dropped support for its non-Ethernet controllers and didn't offer a PCI alternative card. I recognized some of the parts on the ISA card as opto-isolators, and the software treated it as COM3, so I thought there was a fair chance it was just a current-loop interface and that's what it turned out to be.

    We ended up with an RS232 to current loop converter driven by a USB COM port adapter (the replacement computer didn't come with a native COM port - not even in mobo header form). The old software wouldn't install - let alone run - on Windows XP, so we ended up running it on Windows 98 in a VirtualBox VM. And the VM sees the USB COM adapter as native, so all the direct hardware UART access baked into the controller application ends up working.

    Last I heard it's all still working well, the VM having been migrated once to an even newer host computer running 64-bit Windows 7. The customer is happy because he scarcely needed to change his existing workflow. The routing table is built like a fucking tank and is never going to die. And I'm happy because I no longer have to scrounge for rare and endangered PC hardware just for the pleasure of building up another Win98 installation on it.



  • @Onyx said:

    "FFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUU"

    And that's why I'm a pedantic dickweed about gerbilbytes.

    Likewise. It's also why I choose to blame MS, who lied about the size of the file by pretending that a gigabyte is something other than 1,000,000,000 bytes, rather than drive manufacturers who have already copped quite enough stick from clueless wankers with too much time on their hands.

    Binary sizings really are more natural and convenient for measuring certain classes of computer internals, and before the standardization of the binary prefixes there was reason to allow the existing SI prefix meanings to be bent somewhat for use as internal computer industry jargon. Since? Not so much.

    It must be remembered that Donald Knuth, who objected to the binary prefixes as "funny sounding", was himself the inventor of the potrzebie system of weights and measures and is in any case a very skillful troll.



  • @Cursorkeys said:

    As an aside, the program is incredible hostile in general. It hooks INT 1 and 3 to stop you single-stepping and attempting to neuter that is detected by some mechanism I never managed to successfully kill.It also does some calculations in the interrupt code which is then used by the dongle bits. It was over my head but I imagine it's also some sort of extremely annoying anti-debugging trick.The dongle protection scheme itself is even more fun, the dongle provides a hashing function for the program which then uses those as jump vectors in nearly every function.

    Typical dim-bulb PHB paranoia at work, I suppose -- coupled with just enough technical ingenuity to make it actually dangerous. Can you get an IEEE 1394 card wedged into the box somehow? That might be just what is needed to crack this thing -- 1394 ports can access arbitrary memory via DMA, which is what makes them so wonderful for kernel debugging.

    @Cursorkeys said:

    The funny thing is it's an ultra-specialised program that probably only ever had a few hundred users. It wasn't even that expensive to buy.

    I suppose that finding or making a replacement is off the table? Because this sounds like the kind of toxic hellstew I don't want to imagine a business running on, and a hard-to-replace one at that, given what you said above...

    @Cursorkeys said:

    Edit: Even when it was running properly on its original DOS machines it liked to randomly give you 'dongle protection' errors and freeze. Usually after you had a couple of hours of unsaved work. I don't miss having to use it myself!

    As I said before...whoever wrote this has just enough technical competence to be dangerous.

    @Cursorkeys said:

    I need something that rewrites the I/O permissions map (for a program running in the NTVDM or whatever it is in Win 7) so an existing program can run in blissful ignorance.

    Not just that, you'd have to intercept I/O accesses themselves -- the in-kernel LPT driver is likely to get extremely confused if something else starts banging on the parallel port directly!


  • ♿ (Parody)

    @tarunik said:

    That might be just what is needed to crack this thing

    Should we take this discussion to the moral dilemma thread?



  • Who thought it was a good idea to let the public hijack giga/kilo/mega, and make new words kibi to preserve are original meanings?

    Who cares if it's not copacetic with existing meanings for giga/kilo/mega, it's what we used them for and our mutual understanding that mattered.

    Now I have to go and rewrite that in my head, which is bad because I'll have to remember that anything packaged or commented on with a fuzzy "before x date" used the other word.

    Next thing you know they're going to change the definition of planet just to assassinate a very lonely cold geek who sits at the edge of the solar lunchroom just because he didn't clean off his plate at the end of his meal.


  • Discourse touched me in a no-no place

    @xaade said:

    Now I have to go and rewrite that in my head

    No! Resist the ibbies.



  • kibbies and bits.


  • 🚽 Regular

    @tarunik said:

    Can you get an IEEE 1394 card wedged into the box somehow? That might be just what is needed to crack this thing -- 1394 ports can access arbitrary memory via DMA, which is what makes them so wonderful for kernel debugging.

    I thought we did have some but they turn out to be IEEE 488 cards. I was having some luck with SoftICE and a nice anti-anti-debugging script that seemed to do the job. Most of the problem is that assembler on the PC was quite different to the microcontroller assembler I was familiar with and a bit overwhelming.

    I ran a decompilation though IDA and that made it a bit easier to understand but generally I think if I can get it running with the dongle on a more modern operating system that would be about the limit of my abilities.

    I think it would need an x86 assembly guru to successfully crack the thing.

    @tarunik said:

    As I said before...whoever wrote this has just enough technical competence to be dangerous.

    Agreed!

    @boomzilla said:

    Should we take this discussion to the moral dilemma thread?

    I think if you paid for it you should be able to do whatever you like with it (up to selling the one copy you paid for).



  • @Cursorkeys said:

    I thought we did have some but they turn out to be IEEE 488 cards. I was having some luck with SoftICE and a nice anti-anti-debugging script that seemed to do the job. Most of the problem is that assembler on the PC was quite different to the microcontroller assembler I was familiar with and a bit overwhelming.

    Yeah, x86 assembler is quite a mouthful -- I'm no guru in it, but I know enough to get around when looking at an x86 listing, and there are several good references online as well.

    This program being a DOS-beast, though, means that it'd have scribbled on ports to do everything...just what does it do, anyway? It sounds like it'd be far better to get a modern replacement ;)

    @boomzilla said:

    Should we take this discussion to the moral dilemma thread?

    What else are you supposed to do when you have a program on your hands that simply will not run unmodified on a modern OS? Surely, nobody expects you to run your business on a PC with parallel port hardware running Windows 98SE...

    Filed under: the high road ends in a security hole


  • 🚽 Regular

    @tarunik said:

    just what does it do, anyway? It sounds like it'd be far better to get a modern replacement

    It's a type of CAD program, we do have a modern replacement but it can't read the libraries or the files created in the DOS one.
    Myself and the other designers have transitioned to the modern one and re-created our libraries but my big boss feels he has too much invested to change.

    Edit: To be honest he's probably right, it's a huge time-investment to change and I did a lot of the library re-creation at home as otherwise I wouldn't have been able to do my job for quite a while.



  • @Cursorkeys said:

    It's a type of CAD program, we do have a modern replacement but it can't read the libraries or the files created in the DOS one.Myself and the other designers have transitioned to the modern one and re-created our libraries but my big boss feels he has too much invested to change.

    Edit: To be honest he's probably right, it's a huge time-investment to change and I did a lot of the library re-creation at home as otherwise I wouldn't have been able to do my job for quite a while.

    How difficult would it be to reverse-engineer the file formats (preferably for drawings, but libraries would be a nice bonus)?



  • How about pita bytes? You can really stuff 'em!


  • Discourse touched me in a no-no place

    @Cursorkeys said:

    assembler on the PC was quite different to the microcontroller assembler I was familiar with and a bit overwhelming.

    Heh heh heh heh heh.


  • 🚽 Regular

    Laugh all you want, I'm an assembler boss! (Offer only valid for very small instruction sets and macro chicanery) ;)

    I was very glad when C became the predominant language for microcontrollers, MIPS assembly gives me the same reaction as x86


  • Discourse touched me in a no-no place

    @slavdude said:

    How about pita bytes? You can really stuff 'em!

    Why is there not a "you deserve some kind of pun-ishment" option on the flag button?



  • Or a :middle: :finger: icon 🎽 what the hell is this?



  • The Galactic Tanktop? Everyone needs two or three of them.


  • BINNED

    :fu:


  • kills Dumbledore

    If I was a hard drive manufacturer I'd market my drives in TiN (Tibinybbles). Instant doubling of reported sizes so losing a few GibiNybbles won't be a problem.

    Why buy a 2TB drive when I can sell you a 4 TiN for a fraction more? Don't be a mug, nybble at my bits
    (the marketing slogan may need a bit more work)



  • 'sfunny, I always read it as gibby bits - bits that had been gibbed. (Or maybe bits that could gib you.) Anyway, given the frequent use of computers for playing gib-tastic video games, this reading seems ... appropriate.



  • @tarunik said:

    Surely, nobody expects you to run your business on a PC with parallel port hardware running Windows 98SE...

    Windows 98SE makes quite a decent client OS for a VM. It's very lightweight by modern standards, VM managers are pretty good at locking networks down so Windows doesn't catch things, and shutting a VM down with rollback to the last clean snapshot stomps anything it could catch anyway.

    Sometimes just wrapping an existing toxic hellstew up in a VM causes less trouble than trying to replace it, especially piecewise.

    Also, a hashing dongle of parport vintage might well be relying on a secret that's short by modern standards. If it actually works in the VM environment, it might be feasible to log enough traffic off it to crack the hash and subsequently virtualize the dongle as well, guarding against the possibility that it might die.



  • @Cursorkeys said:

    MIPS assembly gives me the same reaction as x86

    ...which goes to show that you just haven't looked closely enough at x86.

    Don't.

    Well, not unless pain is your thing. Needing to pay attention to the pipeline makes MIPS a little tricky, but it's otherwise a really clean architecture. x86? NOT.



  • @flabdablet said:

    Needing to pay attention to the pipeline makes MIPS a little tricky, but it's otherwise a really clean architecture. x86? NOT.

    Modern MIPSen have pipeline interlocks, anyway. So MIPS actually is a clean architecture...especially compared to the toxic hellstew that is x86 assembly.

    @flabdablet said:

    Windows 98SE makes quite a decent client OS for a VM. It's very lightweight by modern standards, VM managers are pretty good at locking networks down so Windows doesn't catch things, and shutting a VM down with rollback to the last clean snapshot stomps anything it could catch anyway.

    Sometimes just wrapping an existing toxic hellstew up in a VM causes less trouble than trying to replace it, especially piecewise.

    Also, a hashing dongle of parport vintage might well be relying on a secret that's short by modern standards. If it actually works in the VM environment, it might be feasible to log enough traffic off it to crack the hash and subsequently virtualize the dongle as well, guarding against the possibility that it might die.


    Agreed that a VM is a better solution for this problem...and good idea about cracking + virtualizing the dongle hardware, by the way. Holding a business hostage to a dongle is a bad idea.



  • @accalia said:

    Pedantry: there isn't a 16 bit subsytstem in 32 bit windows 7. there is a 16 bit emulation layer, which works pretty much like the same thing, except it isn't the same thing.
    Actually, it is technically a subsystem, the NT Virtual DOS Machine. There's also the Windows subsystem and if you're extraordinarily crazy the Interix subsystem for running Linux apps. And there used to be the OS/2 subsystem as well. They all run on this "new technology" soup, which hasn't been new since 1993.



  • @TwelveBaud said:

    Actually, it is technically a subsystem, the NT Virtual DOS Machine. There's also the Windows subsystem and if you're extraordinarily crazy the Interix subsystem for running Linux apps. And there used to be the OS/2 subsystem as well. They all run on this "new technology" soup, which hasn't been new since 1993.

    I wonder how hard it'd be to write yourself a NT subsystem...


  • Discourse touched me in a no-no place

    @tarunik said:

    I wonder how hard it'd be to write yourself a NT subsystem...

    Harder than simply installing a VM, probably.



  • @FrostCat said:

    Harder than simply installing a VM, probably.

    Probably true, although I also wonder just what it'd take to get Valgrind working on Windows...


  • Discourse touched me in a no-no place

    I believe you can purchase Purify for Windows. Does the same sort of thing (and the original version on Solaris — or was it still SunOS back then? — predated Valgrind).


Log in to reply