There is a program (exe file). Created in 1996,runs on Windows XP (32), 700k size. After the start program checks for a presence of HASP device. The program has an ability to open arbitrary wav file. After opening the program in some way alters the sound track by following some algorithm . Before transformation is applied you can specify two parameters "Amplitude" and "Frequency", which affect the conversion output result. They are represented by two sliders in the main window. After transforming the audio track you can save it to a file .
Objective: To recover the algorithm which is applied during transformation.
Prerequisites: I need the signal processing algorithm. You can go with two approaches: 1) Decompile and reverse engineer the program itself. One of the guys already tried to do it, but couldn't. He dumped memory and some other info from debugger. I can send his discoveries to you. Just be aware that that guy was a good specialist as far as I know, so the task is not for novice. One of the ways to work might be, is that I will give you access to the Virtual Machine with installed program and HASP device emulator. You can install the debuggers, decompilers or any other necessary tools.
2) Do a pure blackbox signal processing analysis. We can run as many files as we want through it. And also I have some hint on what processing might be involved.
Acceptance terms:The result must be:
a) Priority #1. The algorithm of conversion in the form of a textual description and diagram.
b ) Optional. A program that implements this conversion in any convenient language (preferably Delphi or C/C++ or Python, others considered too). Well-commented source code. During the acceptance, source code will be checked to make sure that the correct algorithm is implemented. Also, I\'ll convert test wav files through your program and through original one. Output files must be identical (by checksum and other criteria).
c) Optional. If you can implement not just converter, but a copy of the original program, so that it works on all Windows system, stable and looks neat and clean, then I will pay you an extra bonus.
Note:You can ask me any questions or give me instructions on how to make any prior manipulation with the file, to help you decide whether you are able to perform this task. I can do anything on the file and send you the results, so to help you determine any additional info before you accept the project. Answer here or through private messages. Please, put couple words about yourself and related experience.
Additional Project Description:
So I've done some experiments.
Program accepts only mono 44100 wav files.
When I tried to pass to it "5 minutes of silence" wav file, it crashed half way into encoding process with an "division by zero" error.
I generated some sample wav files using [url removed, login to view]
and encoded them using the program and using different "Amp" and "Frequency" settings.
File [url removed, login to view] - Is generated Tone_sin_1000Hz_-6dBFS_5s
File 1_25Amp_10000HzFreq - is encoded with settings Amp=25 and Frequency=10000Hz
File 1_10Amp_10000HzFreq - is encoded with settings Amp=10 and Frequency=5000Hz
File [url removed, login to view] - Is generated Burst_75Hz_-6dBFS_x20
File 2_25Amp_10000HzFreq - is encoded with settings Amp=25 and Frequency=10000Hz
File 2_10Amp_10000HzFreq - is encoded with settings Amp=10 and Frequency=5000Hz