|
||||||||||
|
Freeware Downloads
All software listed on this page runs on Windows Platforms 98, WinME, NT4, 2000, and XP unless otherwise noted. Please visit the Copyright Page for information about how this software may be used or distributed. Eval v1.0 ~ February 2008 [Download ZIP / 40k EXE] Eval is a command line utility to evaluate mathematical expressions from the command line. period. I use this utility more than anything I have ever written so I'm not sure why it took me 6 years to put it online, but here it is. Whether I'm balancing my checkbook or shifting bits while writing a program, I use this tool daily. Windows Calculator (calc.exe) is slow and clumsy even in the most simple tasks and Microsoft hasn't improved it since the Windows 3.1 era except by adding more useless features in Windows 2000 [and up] to make your computer work exactly like a cheap dime-store calculator made in Taiwan. No offense intended to the Taiwanese by any means. Although this program was written in C++, it could have been written on the Kernighan and Richie C compiler around the time I was born so we're not talking rocket science. Okay, enough Microsoft bashing... Eval performs all standard arithmetic operations in addition to modulus, square roots, powers, string comparison, boolean logic as well as bitwise operators. You may choose to control the output from decimal (default), octal, hex, binary, double, unsigned int 32, signed int 32, or all of the above at once. The command line switches also let you change the floating point prescision and add variable substitutions. I don't have any Int64 support, but I could add it in 15 minutes if anyone cared... so let me know if you do? Now on to some examples of how easy it is to use Eval. No clicking buttons, just type in what you need calculated: Quickly, what's the total price of 8.325% sales tax on two books you just bought at Barnes and Noble for 29.95 and 14.95? eval (29.95+14.95)*1.08325 48.637925 * OR * eval (29.95+14.95)*1.08325 /fp:2 (to fix the floating point precision to 2 decimal places) 48.64 Lets say you want to convert 75 degrees Fahrenheit (room temperature) to Celsius. The formula to convert Fahrenheit to Celsius is (F-32)*5/9. To do this calculation in Eval, you simply run the following command: eval (75-32)*5/9.0 23.888889 Note either the 5 or the 9 in the the 5/9 portion must have a decimal point so the result remains in a floating point format (internally an IEEE 754 double) since Eval supports integer division in which the decimal is truncated. The result is a floating point number by default since it makes more sense that the product of a floating point number and an integer should be a floating point number in order to retain the precision of the operation, however if you'd like the result truncated to an integer or other numbering system such as binary, just change the output flags. If you want to go to the trouble to do variable substitutions to calculate the area of a circle with a radius of 5 units, here's how you'd employ Eval to do the job: eval "pi*r pow 2" /where:pi=3.141592 /where:r=5 78.539800 Any occurrence of the custom variables you have defined to be pi and r in the expression are replaced with the respective values. Notice the quotes are required when running expressions with spaces in them on the command line. For a full list of command line options, simply run the EXE with no arguments. InjectDLL v1.0 ~ September 2007 [Download ZIP / 48k EXE] InjectDLL is a command line suite of utilities in a single executable to allow much more than simple DLL injection. The utility supports DLL injection, DLL ejection, and even a way to invoke custom DLL-exported functions in a process. Any of these 3 actions can be combined, run individually, or even scripted. Who needs to inject DLLs? Developers who need to reverse engineer software or fix bugs in software to which no source code is available, software testers, hackers, geeks, and the like. If you write code in a DLL and have the ability to inject the DLL into a running program, you can do anything you want to that program, provided you knew what you were doing when you or whoever wrote the DLL. This software could be used by people who write malicious software (e.g. viruses), but the information I used to develop the software is widely available on the internet, even though it might not be widely available in a compiled form that is easy to use. This utility is tiny, has minimum dependencies (MSVCR71.DLL) yet is heavy on features. Each action can be programmed with delays, elevation of machine privileges, and processes may be specified by system id, name or may be launched directly in suspended or running mode; depending on your injection requirements. There are many methods of DLL injection, but the type chosen for this utility is believed to be the safest all-around method that should work with the most versions of windows without problems as well as the most portable code. InjectDLL uses the CreateRemoteThread/LoadLibrary technique relying on a coincidence that every windows application loads Kernel32.dll and loads that DLL at the same address space in every process. Because LoadLibrary [which also happens to be a Kernel32 function] has the same calling convention, function argument count and size as that required by CreateRemoteThread and the address of LoadLibrary [once known in one process] is known in all processes, you can invoke LoadLibrary directly in a target process for any DLL you wish. When a DLL executes, DllMain is where most people would put their code to be executed in the target process and many times you can get away with it depending on what API calls you need to make. However DllMain is not always the best place for your code as you may end up DeadLocking the process you are injecting. Once your DLL is injected, you may need to call a separate function in your DLL after LoadLibrary is finished. You can't use the technique above to call a custom function in any other DLL however because Windows can loads DLLs anywhere it wants in the address space of a process and you can't run code you can't get the exact address for at runtime when the code is in another process. However InjectDLL allows you to do this using another technique where we copy assembly code directly into the remote process and execute this code with CreateRemoteThread. Once running inside the target process, the assemby code does the dirty work of calling GetProcAddress to obtain the address of the custom function at runtime and execute it. InjectDLL even dumps the return value of the custom function. InjectDLL runs on Windows NT4, Windows 2000, Windows XP and Windows Server 2003. CRC32 v1.21 ~ [Download ZIP / 24k EXE] CRC32 is a Win32 command line tool used to calculate the CRC32 value of either a file or an ANSI string passed as an argument. File mode supports a subdirectory searching features as well as file masks so that more than one file can be processed. To see usage information, run the utility from the command prompt with no arguments. CRC stands for cyclic redundancy check and is is a type of hash function or checksum calculated from a block of data. CRCs are useful because they are fast and simple to implement in software or hardware and are easy to analyze mathematically. A CRC32 is a 32-bit hashing algorithm implemented by this software. For example, the CRC32 value alongside the file's size may be used to uniquely identify duplicate files. Base64 v1.0 ~ [Download ZIP / 28k EXE] Base64 is a Win32 command line tool used to encode or decode data in the Base64 scheme. Output may be send to the console or to a file. Input may be speicifed on the command line or as an input file. Base64 is the largest power of two base that can be represented using only printable ASCII characters. Because of this, it is widely used as a transfer encoding for e-mail and other protocols pertaining to the internet. |
||||||||||
|
Copyright © 2006-2008, Logic Assembly, All Rights Reserved. |
||||||||||