aside from my pong project, and my Pi generation program, I'm running out of ideas for programs (possibly useful, or at least ones that perform an operationt hat could be useful at some point), and I'd like to see if someone here has an intersting idea for a program that I could make, maybe something that would make me think about how exactly I'll implement the actual function, instead of a really streightforward program.
Posted on 2006-07-01 05:09:55 by Bobbias
How about a program that can send and receive email.  I think that would be useful.  Japheth has a program that does a nice job of reading email (and creates a spam list) called Joe but I have yet to see one that lets you send an email, a lot of claims but nothing that works except for a couple of frontends that use the outlook engine.  Joe can be downloaded from Japheth's site, it is worth a peak!

Posted on 2006-07-01 14:12:27 by PBrennick
Hmm, that might be an interesting project :P
so basically, you want me to write a SMTP server that can also recieve emails? Like a SMTP/POP3 all in one server? That actually sounds like an incredably worthwhile program. That, and even if I end up abandoning it partway, which I'm apt to do (Yeah, not the best with sticking to a project, althought that's changing now), I'll definately learn quite a bit.
Posted on 2006-07-01 14:16:06 by Bobbias
A server might be interesting, but no, I am thinking about a client application that can be used to send someone an email.  Eudora does this but I am thinking of something a whole lot simpler.  Just the basic necessities to send an email.

Posted on 2006-07-01 15:32:26 by PBrennick
This might take some research,
but how about a program that can prevent other programs from starting?
I'm thinking about an implementation for a domain where the admins can install this program to prevent users from starting msn for example.
I've once written such a program by checking the process list and killing the process that has the name that was entered.
This of course is a crappy solution.
A better one would be:
- check filename and file-location
- check window information (like title)
- do a file hash check on the file (in case it's renamed)
- Hook ShellExecute and CreateProcess (and the ntdll variants) to prevent the program from starting in the first place.
- Run either as service or as driver so that users cannot kill the process.

This is almost the same implementation as for example kerio firewall, but in this case only for controlling processes starting, not the firewall itself.

The reason i bring up this idea is because i received a thank you email from someone who is grateful for the programs i've written.
One of them is the program mentioned above. I told him to look for a program with these specific implementations since mine can be bypassed very easily.
Unfortunately i don't know of any program that has this functionality so it would be a good project to work on.

Posted on 2006-07-01 16:27:01 by white scorpion
There is a huge difference between a program that prevents others from executing and another that sees an app that should not be running and shuts it down.  You seem to be talking about the first one while working on the second one.  anyway, the only true way to accomplish the first task would be to replace the shell and that isn't going to happen very easily.  Still, the more ideas the better, right?

Posted on 2006-07-01 17:27:16 by PBrennick
Something internet related would be a wise choice imo. Besides sharpening your assembly skills you may also learn about different protocols, sockets, perhaps threads programming and a few other things. Such things is a valuable knowledge and surely will be useful to you in the future.

Although eventually it doesn't really matter what you write, as long as you enjoy doing so and learn something new in the process.
Posted on 2006-07-01 18:08:40 by arafel
Well, the basic mail-sending GUI might be interesting in and of itself (help me get used to writing something more than a simple window :P) I think i'll try the GUI first, since I've had experiance working with telnetting the SMTP server, and yusing a POP3 server shouldn't be hard either.

And maybe if I had time to learn more about hashing files, crawling the directory listing for the msn files, etc. I might try something liek that, but hooking the ShellExecute and CreateProcess is not something I'd have an easy time doing.

That, and I do think learning more about winsock in ASM will be helpful, I've worked with sockets in Java, so I know a bit about working with them. I think my main thing is learning to work with I/O in ASM,s ince I've got a pretty form grasp on the basics of program flow control, math (minus the real hard stuff) and such. the GUI will definately help with winsock, and networking, as well as some I/O, so I think I'll go with that.

Thanks for the input, guys, since I've always had trouble figuring out what I was going to write.
Posted on 2006-07-01 18:14:32 by Bobbias
Here is my SMTP mail sender that I have made few years back. It is very "raw" and has many bugs, but I somehow lost interest to it, when I got it to send mails. Maybe this is some help to you Bobbias, even when the most of the code is uncommented and the few comments it has are in Finnish :(

Posted on 2006-07-07 16:00:51 by SamiP
I'll check it out, shouldn't be that hard to figure out. Also, how can you people understand Finnish, lol. That language scares me :P
Posted on 2006-07-07 17:34:05 by Bobbias
Perhaps, as you say, it needs some work; but I think that congradulations are in order.?  This is the first sendmail program that I have tested that actually worked.?  I got a little worried when all the message boxes had the word error in the titlebar but in the end, it sent the message.?  Very nice.?  I would remove the message boxes, they were probably put there just for testing anyway.

The final window that displays the entire message looks very impressive and I like the ini file idea for autofilling parts of the form.

Posted on 2006-07-07 17:43:47 by PBrennick
For the "block execution" thingy, you don't want to hook CreateProcess and friends, you'll want a driver that hooks lower-level functionality.
Posted on 2006-07-08 06:50:00 by f0dder
And, if you are interested in maths and want a change of pace from other programming, have a look at the Project Euler at the following:

Posted on 2006-07-08 21:53:58 by Raymond
Wow, nice, I think I'll do some of those Euler questions, considering those are exactly the sorts of things that show up in most programming ocntests, except the waterloo one, which is more dynamic, and does things like encryption, matricies, and all sorts of other funky things like path finding algorythms and stuff.
Posted on 2006-07-09 01:14:01 by Bobbias