danielcardeenas / audiostego Goto Github PK
View Code? Open in Web Editor NEWAudio file steganography. Hides files or text inside audio files and retrieve them automatically
License: MIT License
Audio file steganography. Hides files or text inside audio files and retrieve them automatically
License: MIT License
Thank you for this software. Is there any chance of adding a license so it can be used as part of other software?
im new to this so i have a question that must be a dumb one tho. my question is that if i hade something into a .mp3 file, i just can send it to one of my friends and he will be available to decoded without having to install this git?or he need to have this in his pc to read what ever i hade into it? and what about the size of the file im trying to hide, can i hide 1gb into a mp3 song too?
thank you
I compiled this with clang 8.0.0 and AddressSanitizer. I then grabbed a sample.mp3 off of the Interwebz and ran ./hideme sample.mp3 -f
and was treated to this error.
==24995==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020000000d4 at pc 0x00000043331f bp 0x7ffcce75f350 sp 0x7ffcce75eaf8
READ of size 5 at 0x6020000000d4 thread T0
#0 0x43331e in strlen /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:365:5
#1 0x50be88 in std::char_traits<char>::length(char const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/char_traits.h:267:16
#2 0x50be88 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0/../../../../include/c++/6.3.0/bits/basic_string.h:456
#3 0x50be88 in CustomHeader::CustomHeader(char*) /root/AudioStego/CustomHeader.cpp:18
#4 0x508151 in FindHiddenMessage(std::vector<char, std::allocator<char> >&) /root/AudioStego/Algorithm.cpp:195:18
#5 0x4fed2b in main /root/AudioStego/main.cpp:136:22
#6 0x7fa5566cf09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
#7 0x41fca9 in _start (/root/AudioStego/build/hideme+0x41fca9)
0x6020000000d4 is located 0 bytes to the right of 4-byte region [0x6020000000d0,0x6020000000d4)
allocated by thread T0 here:
#0 0x4f7df2 in operator new[](unsigned long) /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cc:109:3
#1 0x50bdcc in CustomHeader::CustomHeader(char*) /root/AudioStego/CustomHeader.cpp:14:17
#2 0x508151 in FindHiddenMessage(std::vector<char, std::allocator<char> >&) /root/AudioStego/Algorithm.cpp:195:18
#3 0x4fed2b in main /root/AudioStego/main.cpp:136:22
#4 0x7fa5566cf09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
SUMMARY: AddressSanitizer: heap-buffer-overflow /b/swarming/w/ir/kitchen-workdir/src/third_party/llvm/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:365:5 in strlen
in FindHiddenTextInWave you initialize msgText with empty string and then trying to write into it by accessing nonexesting element. You have to change string msgText to vector msgText, and fix pus_backs respectively.
Is there any way to make the encoded message sound less bad?
Can you upload a release build ?
it will be easier instead of people will need to build it by themselves.
This works:
$./hideme ~/Music/Machine_Takeover.mp3 "'There is a message'"
Doing it boss!
Spreading level: 297022
Header wrote
File has been saved as: output.mp3
Hiding process has finished successfully.
Cleaning memory...
$ ./hideme output.mp3 -f
Doing it boss!
Looking for the hidden message...
String detected. Retrieving it...
Message recovered size: 20 bytes
Message: 'There is a message'
Recovering process has finished successfully.
Cleaning memory...
But, somehow, this doesn't:
./hideme ~/Music/Machine_Takeover.mp3 "There is a message"
libc++abi.dylib: terminating with uncaught exception of type std::bad_alloc: std::bad_alloc
Abort trap: 6
Why the "' are necessary?
The message comes with it
Message: 'There is a message'
I get the instructions tell to use "'.
But this behavior is weird
And this seems to be a bug.
trimming your extension is bad way. You need to add whole boost just to perform one action.
From the structure of your algorithm is way better to change it in such way (no need for boos)
vector ext;
for (int i = 4; i < 8; i++)
{
if (header[i] == ' ')
{
break;
}
ext.push_back(header[i]);
}
mExtension = std::string(ext.begin(), ext.end());
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.