akcs.falco@hpcvbbs.UUCP (Andrey Dolgachev) (02/12/91)
To Bill Wickes or anybody else who has or would like to take apart the IFERR library posted by Mr. Wickes a few days ago: I wrote a password protect program for the 48 , using the IFERR library, but it is still possible to kick out of the program by pressing ON repeatedlyery fast, for about 3 or 4 times. It would be a lot easier if somebody coudl please post a message about how to disable the ON key (which is done in the IFERR library) and/or how to disable the ON-C sequence. In case anyone is interested, the program which I made is pretty simple, and takes up about 1.5 k or so (but only 700 bytes is really needed, if you have intelligence). There are four programs, TNOFF, whcih turns off the calculator, and upon the subsequent turning on, it asks for the password. The password can be up to 8 letters long, and the keys echo PASSWORD, not the actual passowrd, aka bbs'. If the right one is entered, then the calculator is left free to use, otherwise, it beeps and turns off. The other three programs are NMESS, which creates a new message to display (like name and phone number ) upon startup, above the passowrd entry prompt, NPASS, which creates a new password, and INSTALL which assigns TNOFF to the USERKEY OFF key. The password and message are stored in the hidden directory. As mentioned, it is possible, if you know that you have to, to press ON a lot of times and kick out of the program. However, most casual users who cch your 48 unawares, will not be able to use it. If anybody knows how to disable the ON key, please respond. ----Falco P.S. Then again, who would leave a $250 calculator,especially iwht $60+ cards in it, lying around so people could try playing with it. P.P.S.: Of course, how many people would even be able to use the 48 in the first place, w/ or w/o passowrod protection. P.P.P.S.: Then again, Password protection on a calculator is neat. P.P.P.P. S. Well, kinda'
akcs.xymox@hpcvbbs.UUCP (Kelvin Chang) (04/06/91)
Excuse me, but I've been trying to find out more about the 'hidden' directory, but have been unsuccessful. Could you possible tell me more about this interesting subject? I have some private stuff on my 48sx that I would like to keep private, and this would be a great way to do that. Right now, I just have 'protection' programs that purges the stuff right out of the memory if you press the wrong key to get to the variable...and I don't really like that. Also, I don't know how to make the on-c buttons functionless, but I do know how to keep your calculator off so that the on key can't abort the program. Just have a long list of OFF commands, and have some main program access this list and evaluate it. It will repeatedly turn the calculator off, regardless of whether you push the on key or not. When the program gets to the end of the list and goes back to the beginning of the list, however, a press of the on button during the 'interval' WILL abort the program, which is why I recommend a LONG list of OFFs, or find some way to keep that from happening. Anyway, hope you find this useful, at least amusing. Sincerely, Kelvin University of Arizona
akcs.falco@hpcvbbs.UUCP (Andrey Dolgachev) (04/06/91)
The hidden directory is imply another directory or even a variable with a null name for its label which means that it does not appear on the menu. To get a unquoted null name, which means that you would go to the hidden directory (if there is one on that level) simply type in #15781h SYSEVAL. To get the quoted null name, which looks like '', but is notjust '' with nothing in the middle, type in #15777h SYSEVAL. Now just use this null name, like a normal name, you can STO programs in or use CRDIR on it. At the top level, there is already a null directory, this is used to store the alarms and userkey assignments. However, you can not edit anything with a null name in it. Another interesting ide is that if you have a null directory or null variable, it also hides everything after it in the order of the menu. Play aroudn with it, you can store things in a null name, you can use ORDER (use LIST-> and PRG-> to put some thing into a list or a program, or call a list containing a null name from a program if you don't have PRG->) to hide your variables, whatever. Enjoy, The problem with putting a large number of OFFS in a program, which is also possible, is that you dcan't have a password prtection, and it also works against the owner. --Falco
akcs.xymox@hpcvbbs.UUCP (Kelvin Chang) (04/09/91)
If you want a way to disable the on function on a program, maybe you could take a look at the 'brix' program I uploaded in 'user.programs'. Once you start playing it, the only way to get out of it is to push on-c. And it's impossible (for me) to edit the program as I don't know how to edit a program with a null character in it. If you can figure it out, please leave a note telling me how you did it and how the program works. I would really like to program more complex programs on the 48sx. Thanks, Kelvin P.S. How do you integrate the #15777h SYSEVAL null character in a program so that it can't be edited? It's a great way to hide files, but I found that you can't hide the home directory variables... if you push 'home' the variables will be displayed. So I assume it is only good for hiding variables in subdirectories?
akcs.scotty@hpcvbbs.UUCP (SCOTTY THOMPSON) (04/14/91)
I, too, used Bill's IFERR library to try a password-protection scheme. In fact, the first program I tried to write when I unpacked my first rev. "a" machine was a protection program. I believe the first call I made to tech support was "how to disable the ON key?" All they said was to keep watching the BBS and someone would post something. Well, personally, I think that all of this IFERR^n THEN^n ELSE^n END^n stuff is ridiculous (how many nests should we make to be sure? It's really getting insane to have an IFERR around an IFERR because when the inner IFERR gets aborted, the second has to take over...). Anyway, following is a short password entry program that is very safe if aborted (no abort code, just keycodes/flags on the stack). Also, upon successful entry of a password (any length), it generates a CRC-length list (from BYTES) and this list can be used to test the password. Thus, you can keep your password anywhere in memory and no-one will know what it is because they'll see a binary number and a real number in a list. With the right abort code preventing anyone from putting this list on the stack for testing, it should provide excellent protection from prying eyes. Also, I would recommend using the CRC code and/or bytes (or some crypt algorithm) to encode any data that is THAT vulnerable... The following program is the password entry program. Nothing is displayed on the display, to allow you to put your own message (like "Enter password"). Complete the password with ENTER PROPER. All characters are allowed except ON and ENTER PROPER. Passwords can be any length, because the length is calculated. I would like to know the CRC algorithm, though, HP, so that I could calculate the odds of two pw'ds (not identical) being compared as identical. I think including the length in bytes in the list (with the CRC) should raise the odds considerably. ------------cut----------------- \<< RCLF 64 STWS MEM DROP DEPTH \-> dp \<< DO -1 WAIT UNTIL DUP 51.1 == END DROP DEPTH dp - \->LIST BYTES 2 \->LIST SWAP STOF \>> \>> -----------cut------------------- Short and sweet! Happy hacking! << Hmmm, I feel like a intuitive phrase >>
talaga@oxy.edu (04/14/91)
In article <28073ba1:2013.4comp.sys.handhelds;1@hpcvbbs.UUCP> On the subject of password protection... >Also, I would >recommend using the CRC code and/or bytes (or some crypt algorithm) to >encode any data that is THAT vulnerable... I would recommend simple backups for data that is THAT valuable. If you're worried about prying eyes, don't keep it on your calculator. If you're worried about someone destroying your data. The purge key combination will kill it no matter WHAT security program you use... "There was this paperboy, and he kept crossing through my yard. Well, I didn't like that, so I went and put up a fence. And well, I'll be if that paper boy didn't just climb right over that fence." I guess I'm just naive... -dst