I have a DLL with the following code which decrypts and decompresses an old PKZip 2.0 file...
basic_string<char,std::char_traits<char>,std::allocator<char> > basic_string<char,std::char_traits<char>,std::allocator<char> >3;
basic_string<char,std::char_traits<char>,std::allocator<char> >* ptr3 = <Module>.to_string(&basic_string<char,std::char_traits<char>,std::allocator<char> >3, sPassword);
<Module>.addUNZIP_Decrypt(<Module>.std.basic_string<char,std::char_traits<char>,std::allocator<char> >.c_str(ptr3));
<Module>.addUNZIP_Overwrite(11);
<Module>.addUNZIP_InstallCallback(<Module>.__unep@?zip_callback@?A0xb8f18585@@$$FYGHFFPAD@Z);
<Module>.addUNZIP_View(0);
ptr3 is the pointer to the password string. What's strange is that the prior line has the password, but the password doesn't work when I try to unzip the file manually with 7Zip, WinRAR, or PKZip. ...yet the program does it successfully.
Is it possible the ZIP/UNZIP calls are modifying the password (like adding an unprintable 00 to the end or something)?