Jump to content

Lurking


CopperD

Recommended Posts

Hello everyone, I have been lurking in the shadows for a very long time now. I recently start programing with LabVIEW professionally for the past year. However I have been using it very extensively for the past 5 years. This place looks like a better fit for me then the normal NI forums. 

 

I have a lot of projects and some are just partly finished. Almost all of them need extensive cleanup as my coding style was lacking badly back then. As I get them mostly together I'm going to start posting them and seeing what people like. I am hoping this will help me find the motivation I need to go forward.

 

First up 

 

Mandelbrot Explorer and Pastebin Interface

 

 

 

Other projects I plan on posting in some form

 

BCMath - Uses a hacked up version of the unix utility BC to do arbitrary precision math.

 

Dynamic Code Generator - Allows program to recompile C and Assembly code on the fly during runtime. Very useful for encrypting code you don't want easily disassembled and other neat tricks. Code is compiled from and string and into memory you can call using a function pointer.

 

SDL - Simple DirectMedia Layer https://www.libsdl.org/ Only a low level wrapper for the functions and covers the standard addon libraries. My first example https://youtu.be/NO1pF48_3MQ 

     I am wanting to do a nice high level interface so you can plan out great looking GUIs easily and turn that into a toolkit.

 

Pure LV Graphics - 8bit truecolor graphics library with similar function as SDL using pure LV code. Started because the picture control sucks at rendering text properly and is slow even when using the opcodes. Chars get 2 extra lines at the bottom. So CP437 9x16 chars get rendered as 9x18 and the bottom two lines are filled with background or foreground. Discovered during next project

 

ANSI ART Render - Renders ANSI Art. Might be useful code for terminal emulation. Example attached

 

X86 Emulator - NEC V20, VGA CGA EGA support, Networking, Soundblaster. Based on Fake86. Current project

 

Befunge 98 Generator - Uses Genetic algorithms to generate Befunge 98 code based on predefined goals such as text output or math functions

 

Neural Network C Obfuscation - Replaces some functions and all constants with neural networks in C code to resist code analysis. Can be ran several times over the same file to further increase complexity. 

 

Let me know what you guys think and if you have similar interests. I also have a few nice math art videos I created out on my youtube channel. https://www.youtube.com/channel/UCeW14yU1rQnalbThLamOt3g

 

 

 

 

 

post-54463-0-88307300-1455504513.png

  • Like 1
Link to comment

Nice list of projects. Having not seen ANSI art in quite some time, it certainly does bring some memories. If you want to pimp it up a bit, see if you can write something which will create a reasonably accurate representation of a block diagram in ASCII/ANSI. I think HTML for colors, boldness, etc. is also reasonable.

 

Someone actually asked me about x86 emulation not too long ago, so it's nice to see that someone is crazy/bored enough to try. That's certainly a jump from the C64 or Apple][ emulators you can find on NI's site.

 

I remember seeing the SDL video before and I think the pure LV version sounds interesting.

Edited by Yair
Link to comment

Sweet.

Looks like some nice little projects there.

 

I too have a shedload of 1/2 finished projects. It took me, probably 10 years before I published one of them. I productionised a couple and gave a few away as freeware (you'll see them on my site an on here in the CR) and still I have about 30 that I use but have never published. That last 10% is 50% of the work :D

 

Your ASCII art one looks interesting. I've been looking at visualising encryption keys and SSH has an ASCII art one so I'd like to play with that a bit.

 

OTF compiler for encryption? Please! :P That's polymorphic virus country and you know it :D Looking forward to that one too :thumbup1:

 

Pure LabVIEW graphics sounds cool. The LabVIEW picture control, like most LabVIEW UI, is decades old so I'm looking forward to comparing with the Bitman library as well as the picture control.

 

You might want to consider putting them in the CR so that versioning and updates are easier. Posting products in threads gets real messy, real quick and you always end up with support issues for outaded posts because they found them on search engines. You can put them in the uncertified to begin with then get them moved to the certified sections when you are happy with them.

Edited by ShaunR
  • Like 1
Link to comment

Welcome.  Yeah feel free to post your projects.  I too would encourage you to post them in the actual Code Repository if they are in a decent state instead of In Development.  Bother are fine places but I've found posting in the In Development does get messy, with attachments and updates from users and the original poster.  Posting in the Code Repository will have a discussion where this can still take place, but the first post will always take you to the main page where you can download the newest official release, and any previous official releases.  Rather than having someone read multiple pages of a discussion trying to find the newest version.

Link to comment

Someone actually asked me about x86 emulation not too long ago, so it's nice to see that someone is crazy/bored enough to try. That's certainly a jump from the C64 or Apple][ emulators you can find on NI's site.

 

It is pretty much a straight C to LV conversion and I am about %25 complete with the grunt work before I can move into the meat. It's the 3rd time I've ripped it up and started over now. First was using 8086tiny but it lacks features I wanted, now it is fake86. 

 

 

OTF compiler for encryption? Please! :P That's polymorphic virus country and you know it :D Looking forward to that one too :thumbup1:

 

Pure LabVIEW graphics sounds cool. The LabVIEW picture control, like most LabVIEW UI, is decades old so I'm looking forward to comparing with the Bitman library as well as the picture control.

 

You might want to consider putting them in the CR so that versioning and updates are easier. Posting products in threads gets real messy, real quick and you always end up with support issues for outaded posts because they found them on search engines. You can put them in the uncertified to begin with then get them moved to the certified sections when you are happy with them.

 

Take the compiler with the pastebin for C&C, add openssl wrapper for public key encryption and steam encryption, and use the neural network for further obfuscation. :D Read the write up I need to do on stripping the LV runtime so you can run LabVIEW executables without having an installer for the runtime.  :shifty: Strip DLLs of debug information NI includes (Thank you) then if you're feeling really hardcore strip unused functions and recalculate offsets and header information. The last part is really much more complex then I made it sound. Now that I alienated everyone form using one of my DLLs on to the next topic. 

 

The LabVIEW graphics engine uses the intensity graph as the display. Testing so far has shown this to be much faster than the picture control. The real magic is in the frame buffer you can work on before you display. You're limited in your color selection but for my applications that was not an issue. I am at the point where I need to complete the grunt work for drawing functions. I have nice CP437 bitmaps for the fonts.

 

I will start using the uncertified section, thanks for the tip.

  • Like 1
Link to comment

add openssl wrapper for public key encryption and steam encryption

 

Been there, done that. T-shirts on sale soon. :lol:

 

neural network

That's something I've been meaning to get into. I've got a little project for stripping out requirements and turning them into code that I think would benefit hugely from a neural net for natural language parsing.

Edited by ShaunR
Link to comment

 

Been there, done that. T-shirts on sale soon. :lol:

 

 

Very nice, it looks very well put together. Have you seen http://cryptopals.com/? I have been working my way though the sets. 

 

I have a few Fujitsu RX-600 S5s that I bought for genetic algorithms, neural networks, and other playing around. (The parallel limit of 64 on for loops in annoying :yes: ) These seem to be one of the best price points for used x86 iron. 64 Threads 4x X7550 or X7560 with 32-64GB of ram at under $1000 if you're careful. Then add extra ram as needed up to 1 or 2 TB. I keep two under my desk with dual 40Gbps infinite band links $75-100 per machine. I suspect all this cheap hardware comes from the high speed trading market when they upgrade. The other cost for running them is power. They eat 550 watts at idle and 1200-1600 watts each at max load then an equal amount of power for cooling.

post-54463-0-73054200-1455552152.jpg

Edited by CopperD
Link to comment

I'm guessing at this point this won't surprise anyone. (See attached) I did this in early/mid 2011. Now that I see someone else has done a much better job (VI Explorer), I don't mind admitting to this. As the VI Explorer is so well written compared to this the picture is all I'm giving out.

 

I figured this out while exploring the VI file formating trying to think of some crazy way to do a quine. The MD5 null hash popped out and gave it away. The two hashes next too it took a few days. I never did much with this afterwards as it was nicer to just tell LabVIEW the password is correct.  :cool:

post-54463-0-39719400-1455597870.png

Link to comment

I would not consider VI Explorer well written.  It is written by someone who is clearly an expert at other programming languages, but not LabVIEW.  That isn't to say I don't appreciate their work just that I found my implementation cleaner and easier to follow.  Of course my implementation doesn't show how to replace passwords, posting that publicly would cross a line in my mind.  Looking at the VI file structure as an exercise in pulling data out without involving VI Server is a useful tool.

 

Glad to hear you were able to independently reverse the VI file structure.  I always assumed that the original writer had some internal knowledge at NI to accomplish what he did, but now I realize how that doesn't necessarily have to be the case.

Link to comment

Software is like a fart. Yours is OK but everyone elses stinks. :D

:P   Okay fine, let me try this again.  Those that I've spoken to on the subject find my implementation cleaner and easier to follow.  If your opinion does not align with that statement then you are dumb.  :P  

 

That being said my implementation could benefit from some classes for sure, and I looked into once but never finished the re-write.  Oh and there are some CLNs that could simplify my code too, rather than parsing blocks manually.

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.