topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Thursday April 25, 2024, 6:40 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Martin_130286 [ switch to compact view ]

Pages: [1]
1
The Epsilon Assembler (easm) is a Win32 assembler whose main focus is Windows application development. I am developing easm as my final year degree project and I wanted to introduce the project to a wider audience and generate some interest.

The assembler is still in very early stages and currently only supports a small percentage of the overall design. In saying this however, easm is capable of creating some interesting things in its current state. My aim is to develop the project, even after it has served the educational purpose that it was created for, to be a fully functional assembler with little to no limits.

I have released a BETA version of easm on the project website (http://e-asm.org) in the hope that people will test the assembler and  report any potential bugs. Bug reporting is particularly important at this stage as I need some evidence that the application has been tested.

Bugs are reported on the project website and require a login to do so (to avoid abuse of the bug reporting system). If you require a login, just complete the short form (found in the 'Bugs' section of the site) and I'll add the login asap. Any feedback would be greatly appreciated and be a huge help.

The website also contains design documents, explanations of relevant concepts, easm source code samples and the online documentation for the easm syntax (http://e-asm.org/Docs)

The easm syntax is essentially x86 assembler, but with a unique touch which aims to make it more manageable and readable, take the following Hello World example:



   subsystem cui

   section imports

        from msvcr70.dll import printf
        from kernel32.dll import ExitProcess

   section constants

        const NULL = 00h

   section data

        string szOutput = "Hello World\n"

   section code

        call printf (&szOutput)
        call ExitProcess (NULL)



easm makes extensive use of Win32 'imports' in order to import functionality from existing code, residing in dynamic link libraries. It is possible to import pretty much any function from any DLL (given its name) and then invoke the function in easm. This produces a huge library of inherited code, much like other languages have access to.

As a final example, the application below was recently created using easm and shows that easm is capable of the development of a fully functional application (even though it is tedious at this point). The program is a simple HTTP downloader, which saves a remote file to a local file given the fully qualified URL.

[attach=#1][/attach]

http://e-asm.org/samples/http.easm
http://e-asm.org/http.exe

Although easm is intended for the Microsoft Windows platform... there has be some success in running the assembler and applications produced by the assembler under Linux systems with the aid of the Windows Emulator WINE. I have not tried this myself, but I am aware that the early examples in easm run fine when using WINE.

Thanks a lot, Martin.

2
With all the discussion about productivity, it made me think about whether I do what I can to ensure I am as productive as I should be.

This lead me onto thinking about the things that divert my attention away from my task in-hand, such as loud music, interruptions and explicit wallpapers. So I came to wonder whether your desktop wallpaper (being the thing you see everytime you get a glimpse of your desktop) could aid you in your productivity.

So what I want to do is get people posting their favorite 'concentration wallpaper'. The wallpaper that you believe allows you to concentrate best and explain why it does this. The results may be interesting, and perhaps lead me to a wallpaper that helps me concentrate better than my current one.

OK - I'll go first.

This is my current wallpaper and in-case you don't recognise it, it's the top of the space needle in Seattle. I like it because looking at it makes me feel as though I am sat there in the big empty room and it gives me the sense of peace, and the nice peaceful view. It reminds me of a quiet atmosphere and being on top of the world. I truly believe it helps me concentrate better.

Space Needle.jpg

Well there's mine... now everyone else, don't be shy... show us your filth.

3
Announce Your Software/Service/Product / Ligare
« on: January 24, 2007, 06:46 PM »
I wrote a small application a while back that I thought might be of interest to some people.
I'll present it here in-case anybody finds it interesting and wants to use it. It's completely free so try it out.

Ligare is basically a small Win32 utility which takes a single input file and binds it to an 'extractor' executable, which contains a copy of the input file after it has been encrypted using an RC4 derivative encryption algorithm.

The idea behind Ligare is for allowing the safe hosting of a file no matter where it is. Think of it as password protecting any file. It's main personal goal was for me to be able to host source code or programs on a webserver and know that only people I give the password to could actually access it.

Another possible use of Ligare could be for licensing on small utility programs. The encryption key could just be a serial number that could be generated for each separate copy. (Just an idea though)

http://img408.imageshack.us/img408/8492/ss10ot.png


This particular example binds & encrypts the file Main.cpp and produces the output file Main.ligare.exe.
Please note: data is only bound, no compression is used and so the resulting executable size will be the size of the original source data + the 'extractor' executable.

http://img261.imageshack.us/img261/1240/ss24pq.png


On running the output file Main.ligare.exe, the extractor program appears allowing you to enter the encryption key and extract the original file:

http://img252.imageshack.us/img252/8741/ss38pt.png


Assuming the correct key was entered, the original file will be extracted and decrypted and should work as normal. If an incorrect key is entered, the actual output file will be another level of encryption with the newly entered key.

I hope someone can find use for it and feel free to leave your comments and suggestions, I may still make small changes if people need me to.

Thanks, Martin.

Pages: [1]