summaryrefslogtreecommitdiff
path: root/plugins/!Deprecated/Dbx_mmap_SA
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/!Deprecated/Dbx_mmap_SA')
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/UAthena.pas176
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.cfg38
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dof136
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dpr112
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.rc28
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.resbin0 -> 916 bytes
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/make.bat27
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_mod256_unit.pas64
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_unit.pas212
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj159
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters30
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj162
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj.filters30
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj178
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj.filters30
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/res/Version.rc38
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/Version.h11
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.cpp133
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj254
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj.filters125
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj257
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj.filters125
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj257
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj.filters125
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/res/db3x_mmap.rc275
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/res/logo.icobin0 -> 5430 bytes
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/res/pass.icobin0 -> 1150 bytes
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/res/version.rc38
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/commonheaders.h110
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.cpp257
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.h76
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/dialogs.cpp526
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/init.cpp152
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/options.h38
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/resource.h54
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/security.cpp358
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/stdafx.cpp18
-rw-r--r--plugins/!Deprecated/Dbx_mmap_SA/src/version.h14
38 files changed, 4623 insertions, 0 deletions
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/UAthena.pas b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/UAthena.pas
new file mode 100644
index 0000000000..15a9674e0c
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/UAthena.pas
@@ -0,0 +1,176 @@
+unit UAthena;
+{
+ Athena: cryptor module for Miranda SecuredMMAP Database driver
+ Copyright 2007-2008 Klyde
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+}
+
+
+interface
+uses
+ md5_unit, windows;
+Type
+ Arr = array of byte;
+ PArr = ^Arr;
+
+ Function MD5_Mod(const s: AnsiString; block_count: byte): AnsiString;
+ Procedure MakeKey(key: PArr; len: word; const pwd: AnsiString);
+ Procedure EncryptData(key: PArr; data: PByte; size: LongWord);
+ Procedure DecryptData(key: PArr; data: PByte; size: LongWord);
+
+implementation
+//==============================================================================
+Function str_back(const s: AnsiString): AnsiString;
+Var
+ i: integer;
+Begin
+ result := '';
+ for i := Length(s) downto 1 do result := result + s[i];
+end;
+//==============================================================================
+Function MD5_Mod(const s: AnsiString; block_count: byte): AnsiString;
+Var
+ s1, s2, sb : AnsiString;
+ k : word;
+Begin
+ sb := str_back(s);
+ s2 := '';
+ For k := 1 to block_count do
+ Begin
+ s1 := md5(s + sb);
+ s2 := str_back(s2 + md5(s1+sb+s2));
+ End;
+ result := s2;
+end;
+//==============================================================================
+Procedure MakeKey(key: PArr; len: word; const pwd: AnsiString);
+Var
+ s : AnsiString;
+ i : word;
+ dummy: integer;
+Begin
+ if len > 64 then Len := ((Len div 16) + 1)*16 else Len := 64;
+ SetLength(key^, Len);
+ s := MD5_mod(pwd, len div 16);
+ for i := 1 to length(s) div 2 do
+ begin
+ val('$' + copy(s, i*2 - 1, 2),key^[i-1],dummy);
+ end;
+end;
+//==============================================================================
+Procedure GetNENum(key: arr; var n1, n2: LongWord);
+Var
+ i: LongWord;
+Begin
+ n1 := 0;
+ n2 := 0;
+ for i := 0 to Length(key) - 1 do
+ Begin
+ n1 := n1 + key[i] + (i + 1)*(n1+1);
+ n2 := n2 + key[i] - (i + 1)*(n2+1);
+ end;
+ n1 := n1*2 + 1;
+ n2 := n2*2 + 3;
+end;
+
+//==============================================================================
+Procedure SimGamm(key: PArr; data: PByte; size: LongWord);
+Var
+ kg : Arr;
+ i, n1, n2 : LongWord;
+ lk, k1, k2 : word;
+Begin
+ lk := Length(key^);
+ SetLength(kg, lk);
+ for i := 0 to lk - 1 do kg[i] := key^[i];
+ GetNENum(kg, n1, n2);
+ For i := 1 to size - 1 do
+ Begin
+ if (i mod lk) = 0 then GetNENum(kg, n1, n2);
+ k1 := (i+n1+7)*n2 mod lk;
+ k2 := (i+n2+3)*n1 mod lk;
+
+ PByte(uint_ptr(data)+i)^ := PByte(uint_ptr(data)+i)^ xor kg[k1] xor kg[k2];
+
+ kg[k1] := kg[k1]*k1 + kg[k2] + i*k2;
+ kg[k2] := kg[k2]*k2 + kg[k1] + i*k1;
+ end;
+end;
+//==============================================================================
+Procedure Left(key: PArr; data: PByte; size: LongWord);
+Var
+ k : Arr;
+ i, n1, n2 : LongWord;
+ lk, k1, k2 : word;
+
+Begin
+ lk := Length(key^);
+
+ SetLength(k, lk);
+ for i := 0 to lk - 1 do k[i] := key^[i];
+ GetNENum(k, n1, n2);
+ //---------------------------------------------------------------------------
+ k1 := (n2 + lk)*n1 mod lk;
+ k2 := (n1 + lk)*n2 mod lk;
+ data^ := data^ xor k[k1] xor k[k2];
+
+ //---------------------------------------------------------------------------
+ For i := 1 to size - 1 do
+ Begin
+ k1 := (i+n1)*n2 mod lk;
+ k2 := (i+n2)*n1 mod lk;
+
+ PByte(uint_ptr(data)+i)^ := PByte(uint_ptr(data)+i)^ xor ((PByte(uint_ptr(data)+i-1)^ xor k[k1]) xor k[k2]);
+ end;
+end;
+//==============================================================================
+Procedure Right(key: PArr; data: PByte; size: LongWord);
+Var
+ k : Arr;
+ i, n1, n2 : LongWord;
+ lk, k1, k2 : word;
+Begin
+ lk := Length(key^);
+ SetLength(k, lk);
+ for i := 0 to lk - 1 do k[i] := key^[i];
+ GetNENum(k, n1, n2);
+ //---------------------------------------------------------------------------
+ For i := size - 1 downto 1 do
+ Begin
+ k1 := (i+n1)*n2 mod lk;
+ k2 := (i+n2)*n1 mod lk;
+ PByte(uint_ptr(data) + i)^ := PByte(uint_ptr(data)+i)^ xor ((PByte(uint_ptr(data) + i - 1)^ xor k[k1]) xor k[k2]);
+ end;
+ //---------------------------------------------------------------------------
+ k1 := (n2 + lk)*n1 mod lk;
+ k2 := (n1 + lk)*n2 mod lk;
+ data^ := data^ xor k[k1] xor k[k2];
+end;
+//==============================================================================
+Procedure EncryptData(key: PArr; data: PByte; size: LongWord);
+Begin
+ Left(key, data, size);
+ SimGamm(key, data, size);
+end;
+//==============================================================================
+Procedure DecryptData(key: PArr; data: PByte; size: LongWord);
+Begin
+ SimGamm(key, data, size);
+ Right(key, data, size);
+end;
+//==============================================================================
+end.
+
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.cfg b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.cfg
new file mode 100644
index 0000000000..273efb4bc2
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.cfg
@@ -0,0 +1,38 @@
+-$A8
+-$B-
+-$C+
+-$D+
+-$E-
+-$F-
+-$G+
+-$H+
+-$I+
+-$J-
+-$K-
+-$L+
+-$M-
+-$N+
+-$O+
+-$P+
+-$Q-
+-$R-
+-$S-
+-$T-
+-$U-
+-$V+
+-$W-
+-$X+
+-$YD
+-$Z1
+-cg
+-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+-H+
+-W+
+-M
+-$M16384,1048576
+-K$00400000
+-LE"d:\program files\borland\delphi7\Projects\Bpl"
+-LN"d:\program files\borland\delphi7\Projects\Bpl"
+-w-UNSAFE_TYPE
+-w-UNSAFE_CODE
+-w-UNSAFE_CAST
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dof b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dof
new file mode 100644
index 0000000000..d43219d29e
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dof
@@ -0,0 +1,136 @@
+[FileVersion]
+Version=7.0
+[Compiler]
+A=8
+B=0
+C=1
+D=1
+E=0
+F=0
+G=1
+H=1
+I=1
+J=0
+K=0
+L=1
+M=0
+N=1
+O=1
+P=1
+Q=0
+R=0
+S=0
+T=0
+U=0
+V=1
+W=0
+X=1
+Y=1
+Z=1
+ShowHints=1
+ShowWarnings=1
+UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
+NamespacePrefix=
+SymbolDeprecated=1
+SymbolLibrary=1
+SymbolPlatform=1
+UnitLibrary=1
+UnitPlatform=1
+UnitDeprecated=1
+HResultCompat=1
+HidingMember=1
+HiddenVirtual=1
+Garbage=1
+BoundsError=1
+ZeroNilCompat=1
+StringConstTruncated=1
+ForLoopVarVarPar=1
+TypedConstVarPar=1
+AsgToTypedConst=1
+CaseLabelRange=1
+ForVariable=1
+ConstructingAbstract=1
+ComparisonFalse=1
+ComparisonTrue=1
+ComparingSignedUnsigned=1
+CombiningSignedUnsigned=1
+UnsupportedConstruct=1
+FileOpen=1
+FileOpenUnitSrc=1
+BadGlobalSymbol=1
+DuplicateConstructorDestructor=1
+InvalidDirective=1
+PackageNoLink=1
+PackageThreadVar=1
+ImplicitImport=1
+HPPEMITIgnored=1
+NoRetVal=1
+UseBeforeDef=1
+ForLoopVarUndef=1
+UnitNameMismatch=1
+NoCFGFileFound=1
+MessageDirective=1
+ImplicitVariants=1
+UnicodeToLocale=1
+LocaleToUnicode=1
+ImagebaseMultiple=1
+SuspiciousTypecast=1
+PrivatePropAccessor=1
+UnsafeType=0
+UnsafeCode=0
+UnsafeCast=0
+[Linker]
+MapFile=0
+OutputObjs=0
+ConsoleApp=1
+DebugInfo=0
+RemoteSymbols=0
+MinStackSize=16384
+MaxStackSize=1048576
+ImageBase=4194304
+ExeDescription=
+[Directories]
+OutputDir=
+UnitOutputDir=
+PackageDLLOutputDir=
+PackageDCPOutputDir=
+SearchPath=
+Packages=
+Conditionals=
+DebugSourceDirs=
+UsePackages=0
+[Parameters]
+RunParams=
+HostApplication=
+Launcher=
+UseLauncher=0
+DebugCWD=
+[Language]
+ActiveLang=
+ProjectLang=
+RootDir=
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1049
+CodePage=1251
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dpr b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dpr
new file mode 100644
index 0000000000..4824b9b01f
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.dpr
@@ -0,0 +1,112 @@
+library athena;
+
+{
+ Athena: cryptor module for Miranda SecuredMMAP Database driver
+ Copyright 2007-2008 Klyde
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+}
+
+uses
+ UAthena,
+ WIndows;
+
+{$R *.res}
+
+type
+ TGenerateKey = function(key: PAnsiChar): PArr; stdcall;
+ TFreeKey = procedure(key: PArr); stdcall;
+ TEncryptMem = procedure(data: PByte; size: LongWord; key: PArr); stdcall;
+
+ PCryptorInfo = ^TCryptorInfo;
+ TCryptorInfo = record
+ GenerateKey: TGenerateKey;
+ FreeKey: TFreeKey;
+
+ EncryptMem: TEncryptMem;
+ DecryptMem: TEncryptMem;
+
+ Name: PAnsiChar;
+ Info: PAnsiChar;
+ Author: PAnsiChar;
+ Site: PAnsiChar;
+ Email: PAnsiChar;
+
+ version: dword;
+
+ uid: word;
+ end;
+
+var
+ Info: TCryptorInfo;
+
+
+function PLUGIN_MAKE_VERSION(a,b,c,d: Cardinal): integer;
+begin
+ Result := (a shl 24) or (b shl 16) or (c shl 8) or d;
+end;
+
+function GenerateKey(pwd: PAnsiChar): PArr; stdcall;
+var
+ a: PArr;
+begin
+
+ new(a);
+ MakeKey(a, 512, pwd);
+ result := a;
+
+end;
+
+procedure FreeKey(key: PArr); stdcall;
+begin
+ FreeMem(key);
+end;
+
+procedure EncryptMem(data: PByte; size: LongWord; key: PArr); stdcall;
+begin
+ if size <= 0 then exit;
+ EncryptData(key, data, size);
+end;
+
+procedure DecryptMem(data: PByte; size: LongWord; key: PArr); stdcall;
+begin
+ if size <= 0 then exit;
+ DecryptData(key, data, size);
+end;
+
+function GetCryptor: PCryptorInfo; stdcall;
+begin
+ Info.Name := 'Athena';
+ Info.Author := 'Klyde';
+ Info.Site := 'http://cityopen.ru/forum/journal.php?user=151';
+ Info.Email := 'xxxmara@mail.ru';
+ Info.Info := 'Secure alghoritm developed in russian universities';
+
+ Info.version := PLUGIN_MAKE_VERSION(0,0,3,0);
+
+ Info.UID := $FEA8;
+
+ Info.GenerateKey := GenerateKey;
+ Info.FreeKey := FreeKey;
+ Info.EncryptMem := EncryptMem;
+ Info.DecryptMem := DecryptMem;
+
+ result := @Info;
+end;
+
+exports GetCryptor;
+
+begin
+end.
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.rc b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.rc
new file mode 100644
index 0000000000..bc035ab02a
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.rc
@@ -0,0 +1,28 @@
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 0,0,3,0
+ PRODUCTVERSION 0,0,3,0
+ FILEFLAGSMASK $3F
+ FILEOS 4
+ FILETYPE 2
+ FILESUBTYPE 0
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "CompanyName",""
+ VALUE "Comments", "Secure alghoritm developed in russian universities"0
+ VALUE "FileDescription", "Secure alghoritm developed in russian universities"0
+ VALUE "FileVersion", "0, 0, 3, 0 "0
+ VALUE "InternalName", "Athena"0
+ VALUE "OriginalFilename", "Athena.dll"0
+ VALUE "ProductName", "Athena"0
+ VALUE "ProductVersion", "0, 0, 3, 0 "0
+ VALUE "SpecialBuild", ".04.2010 "0
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation",0,1200
+ END
+END \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.res b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.res
new file mode 100644
index 0000000000..908733f3de
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/athena.res
Binary files differ
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/make.bat b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/make.bat
new file mode 100644
index 0000000000..438629ae85
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/make.bat
@@ -0,0 +1,27 @@
+@echo off
+set p1=%1
+set p2=%2
+if "%p1%" == "" (echo "please specify target platform by adding 'fpc' or 'fpc64 parameter to command line!'"&&pause&&goto :EOF)
+if "%p2%" == "" (echo "please specify target output directory by adding 10 for bin10 or 11 for bin11 or 12 for bin12 to command line!'"&&pause&&goto :EOF)
+if /i '%1' == 'fpc' (
+ set OUTDIR="..\..\..\..\bin%2\Release\Plugins\Cryptors"
+ set FPCBIN=fpc.exe
+) else if /i '%1' == 'fpc64' (
+ set OUTDIR="..\..\..\..\bin%2\Release64\Plugins\Cryptors"
+ set FPCBIN=ppcrossx64.exe
+)
+set PROJECT=Athena
+
+if not exist %OUTDIR% mkdir %OUTDIR%
+md tmp
+
+rem brcc32.exe %myopts% athena.rc -fooathena.res
+
+%FPCBIN% @..\..\..\Utils.pas\fpc.cfg %PROJECT%.dpr %3 %4 %5 %6 %7 %8 %9
+if errorlevel 1 exit /b 1
+
+move .\tmp\%PROJECT%.dll %OUTDIR%
+move .\tmp\%PROJECT%.map .
+del /Q tmp\*
+rd tmp
+exit /b 0
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_mod256_unit.pas b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_mod256_unit.pas
new file mode 100644
index 0000000000..53b2d996da
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_mod256_unit.pas
@@ -0,0 +1,64 @@
+unit md5_mod256_unit;
+interface
+
+Uses
+ MD5_Unit, sysutils, classes, windows;
+Const
+ MSize = 256;
+Type
+ tiAr = array [0..255] of integer;
+
+Function MD5_Mod(s: String): String;
+Function MD5_Matrix(s: string): tArr;
+Function str_back(s: String): String;
+
+implementation
+//==============================================================================
+Function str_back(s: String): String;
+Var
+ i: integer;
+Begin
+ result := '';
+ for i := Length(s) downto 1 do result := result + s[i];
+end;
+//==============================================================================
+Function MD5_Mod_back(s: String): String;
+Var
+ s1, s2 : String;
+ k : word;
+Begin
+ s1 := str_back(s)+s;
+ s2 := md5(str_back(s)+str_back(md5(s))+
+ str_back(md5(s+s))+
+ str_back(md5(s+s+s))+
+ str_back(md5(s+s+s+s))+
+ str_back(md5(s+s+s+'asddsa'+s)));
+ For k:=1 to trunc(sqrt(MSize))-1 do
+ Begin
+ s1 := md5(s1 + s2 + md5(s1+s1+s2+s) + md5(s2+s2+s1+s) + s);
+ s2 := str_back(s2 + str_back(md5(s1+s2+md5(s))));
+ End;
+ result:=s2;
+end;
+//==============================================================================
+Function MD5_Mod(s: String): String;
+Var
+ s1, s2 : String;
+ k : word;
+Begin
+ s1 := s + AnsiUpperCase(s) + AnsiLowerCase(s);
+ s2 := md5(s+md5(s)+md5(s+s)+md5(s+AnsiUpperCase(s)+s)+md5(s+AnsiLowerCase(s+s)+s)+md5(s+s+str_back(s+s+'qweewq')));
+ For k:=1 to trunc(sqrt(MSize))-1 do
+ Begin
+ s1 := md5(s1 + str_back(s2) + md5(s1+s1+s2+s) + str_back(md5(s2+s2+s1+s)) + s);
+ s2 := str_back(s2 + md5(s1+AnsiUpperCase(s2+md5(s))));
+ End;
+ result:=s2;
+end;
+//==============================================================================
+
+//==============================================================================
+end.
+
+
+
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_unit.pas b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_unit.pas
new file mode 100644
index 0000000000..f9a130b729
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/Athena/md5_unit.pas
@@ -0,0 +1,212 @@
+unit md5_unit;
+
+interface
+
+uses Windows;
+Type
+ TMD5 = Array [0..15] of byte;
+
+function MD5(const s: AnsiString): AnsiString;
+function MD5_arr(const s: AnsiString): TMD5;
+
+implementation
+//==============================================================================
+const
+ HexDigitChr : array [0..15] of AnsiChar = ('0','1','2','3','4','5','6','7',
+ '8','9','A','B','C','D','E','F');
+
+function Int2Hex(Value:dword;Digits:integer=0):AnsiString;
+var
+ i:cardinal;
+ buf:array [0..31] of AnsiChar;
+begin
+ if Digits<=0 then
+ begin
+ Digits:=0;
+ i:=Value;
+ repeat
+ i:=i shr 4;
+ inc(Digits);
+ until i=0;
+ end;
+
+ buf[Digits]:=#0;
+ repeat
+ Dec(Digits);
+ buf[Digits]:=AnsiChar(HexDigitChr[Value and $F]);
+ Value:=Value shr 4;
+ until Digits=0;
+ result:=buf;
+end;
+//==============================================================================
+function MD5_arr(const s: AnsiString): TMD5;
+var
+ a : TMD5;
+ LenHi, LenLo: longword;
+ Index: DWord;
+ HashBuffer : array[0..63] of byte;
+ CurrentHash : array[0..3] of DWord;
+
+ procedure Burn;
+ begin
+ LenHi:= 0; LenLo:= 0;
+ Index:= 0;
+ FillChar(HashBuffer,Sizeof(HashBuffer),0);
+ FillChar(CurrentHash,Sizeof(CurrentHash),0);
+ end;
+
+ procedure Init;
+ begin
+ Burn;
+ CurrentHash[0]:= $67452301;
+ CurrentHash[1]:= $efcdab89;
+ CurrentHash[2]:= $98badcfe;
+ CurrentHash[3]:= $10325476;
+ end;
+
+ function LRot32(a, b: longword): longword;
+ begin
+ Result:= (a shl b) or (a shr (32-b));
+ end;
+
+ procedure Compress;
+ var
+ Data : array[0..15] of dword;
+ A, B, C, D: dword;
+ begin
+ Move(HashBuffer,Data,Sizeof(Data));
+ A:= CurrentHash[0];
+ B:= CurrentHash[1];
+ C:= CurrentHash[2];
+ D:= CurrentHash[3];
+
+ A:= B + LRot32(A + (D xor (B and (C xor D))) + Data[ 0] + $d76aa478,7);
+ D:= A + LRot32(D + (C xor (A and (B xor C))) + Data[ 1] + $e8c7b756,12);
+ C:= D + LRot32(C + (B xor (D and (A xor B))) + Data[ 2] + $242070db,17);
+ B:= C + LRot32(B + (A xor (C and (D xor A))) + Data[ 3] + $c1bdceee,22);
+ A:= B + LRot32(A + (D xor (B and (C xor D))) + Data[ 4] + $f57c0faf,7);
+ D:= A + LRot32(D + (C xor (A and (B xor C))) + Data[ 5] + $4787c62a,12);
+ C:= D + LRot32(C + (B xor (D and (A xor B))) + Data[ 6] + $a8304613,17);
+ B:= C + LRot32(B + (A xor (C and (D xor A))) + Data[ 7] + $fd469501,22);
+ A:= B + LRot32(A + (D xor (B and (C xor D))) + Data[ 8] + $698098d8,7);
+ D:= A + LRot32(D + (C xor (A and (B xor C))) + Data[ 9] + $8b44f7af,12);
+ C:= D + LRot32(C + (B xor (D and (A xor B))) + Data[10] + $ffff5bb1,17);
+ B:= C + LRot32(B + (A xor (C and (D xor A))) + Data[11] + $895cd7be,22);
+ A:= B + LRot32(A + (D xor (B and (C xor D))) + Data[12] + $6b901122,7);
+ D:= A + LRot32(D + (C xor (A and (B xor C))) + Data[13] + $fd987193,12);
+ C:= D + LRot32(C + (B xor (D and (A xor B))) + Data[14] + $a679438e,17);
+ B:= C + LRot32(B + (A xor (C and (D xor A))) + Data[15] + $49b40821,22);
+
+ A:= B + LRot32(A + (C xor (D and (B xor C))) + Data[ 1] + $f61e2562,5);
+ D:= A + LRot32(D + (B xor (C and (A xor B))) + Data[ 6] + $c040b340,9);
+ C:= D + LRot32(C + (A xor (B and (D xor A))) + Data[11] + $265e5a51,14);
+ B:= C + LRot32(B + (D xor (A and (C xor D))) + Data[ 0] + $e9b6c7aa,20);
+ A:= B + LRot32(A + (C xor (D and (B xor C))) + Data[ 5] + $d62f105d,5);
+ D:= A + LRot32(D + (B xor (C and (A xor B))) + Data[10] + $02441453,9);
+ C:= D + LRot32(C + (A xor (B and (D xor A))) + Data[15] + $d8a1e681,14);
+ B:= C + LRot32(B + (D xor (A and (C xor D))) + Data[ 4] + $e7d3fbc8,20);
+ A:= B + LRot32(A + (C xor (D and (B xor C))) + Data[ 9] + $21e1cde6,5);
+ D:= A + LRot32(D + (B xor (C and (A xor B))) + Data[14] + $c33707d6,9);
+ C:= D + LRot32(C + (A xor (B and (D xor A))) + Data[ 3] + $f4d50d87,14);
+ B:= C + LRot32(B + (D xor (A and (C xor D))) + Data[ 8] + $455a14ed,20);
+ A:= B + LRot32(A + (C xor (D and (B xor C))) + Data[13] + $a9e3e905,5);
+ D:= A + LRot32(D + (B xor (C and (A xor B))) + Data[ 2] + $fcefa3f8,9);
+ C:= D + LRot32(C + (A xor (B and (D xor A))) + Data[ 7] + $676f02d9,14);
+ B:= C + LRot32(B + (D xor (A and (C xor D))) + Data[12] + $8d2a4c8a,20);
+
+ A:= B + LRot32(A + (B xor C xor D) + Data[ 5] + $fffa3942,4);
+ D:= A + LRot32(D + (A xor B xor C) + Data[ 8] + $8771f681,11);
+ C:= D + LRot32(C + (D xor A xor B) + Data[11] + $6d9d6122,16);
+ B:= C + LRot32(B + (C xor D xor A) + Data[14] + $fde5380c,23);
+ A:= B + LRot32(A + (B xor C xor D) + Data[ 1] + $a4beea44,4);
+ D:= A + LRot32(D + (A xor B xor C) + Data[ 4] + $4bdecfa9,11);
+ C:= D + LRot32(C + (D xor A xor B) + Data[ 7] + $f6bb4b60,16);
+ B:= C + LRot32(B + (C xor D xor A) + Data[10] + $bebfbc70,23);
+ A:= B + LRot32(A + (B xor C xor D) + Data[13] + $289b7ec6,4);
+ D:= A + LRot32(D + (A xor B xor C) + Data[ 0] + $eaa127fa,11);
+ C:= D + LRot32(C + (D xor A xor B) + Data[ 3] + $d4ef3085,16);
+ B:= C + LRot32(B + (C xor D xor A) + Data[ 6] + $04881d05,23);
+ A:= B + LRot32(A + (B xor C xor D) + Data[ 9] + $d9d4d039,4);
+ D:= A + LRot32(D + (A xor B xor C) + Data[12] + $e6db99e5,11);
+ C:= D + LRot32(C + (D xor A xor B) + Data[15] + $1fa27cf8,16);
+ B:= C + LRot32(B + (C xor D xor A) + Data[ 2] + $c4ac5665,23);
+
+ A:= B + LRot32(A + (C xor (B or (not D))) + Data[ 0] + $f4292244,6);
+ D:= A + LRot32(D + (B xor (A or (not C))) + Data[ 7] + $432aff97,10);
+ C:= D + LRot32(C + (A xor (D or (not B))) + Data[14] + $ab9423a7,15);
+ B:= C + LRot32(B + (D xor (C or (not A))) + Data[ 5] + $fc93a039,21);
+ A:= B + LRot32(A + (C xor (B or (not D))) + Data[12] + $655b59c3,6);
+ D:= A + LRot32(D + (B xor (A or (not C))) + Data[ 3] + $8f0ccc92,10);
+ C:= D + LRot32(C + (A xor (D or (not B))) + Data[10] + $ffeff47d,15);
+ B:= C + LRot32(B + (D xor (C or (not A))) + Data[ 1] + $85845dd1,21);
+ A:= B + LRot32(A + (C xor (B or (not D))) + Data[ 8] + $6fa87e4f,6);
+ D:= A + LRot32(D + (B xor (A or (not C))) + Data[15] + $fe2ce6e0,10);
+ C:= D + LRot32(C + (A xor (D or (not B))) + Data[ 6] + $a3014314,15);
+ B:= C + LRot32(B + (D xor (C or (not A))) + Data[13] + $4e0811a1,21);
+ A:= B + LRot32(A + (C xor (B or (not D))) + Data[ 4] + $f7537e82,6);
+ D:= A + LRot32(D + (B xor (A or (not C))) + Data[11] + $bd3af235,10);
+ C:= D + LRot32(C + (A xor (D or (not B))) + Data[ 2] + $2ad7d2bb,15);
+ B:= C + LRot32(B + (D xor (C or (not A))) + Data[ 9] + $eb86d391,21);
+
+ Inc(CurrentHash[0],A);
+ Inc(CurrentHash[1],B);
+ Inc(CurrentHash[2],C);
+ Inc(CurrentHash[3],D);
+ Index:= 0;
+ FillChar(HashBuffer,Sizeof(HashBuffer),0);
+ end;
+
+procedure Update(const Buffer; Size: longword);
+var
+ PBuf: ^byte;
+begin
+ Inc(LenHi,Size shr 29);
+ Inc(LenLo,Size*8);
+ if LenLo < (Size*8) then Inc(LenHi);
+ PBuf:= @Buffer;
+ while Size> 0 do
+ begin
+ if (Sizeof(HashBuffer)-Index)<= DWord(Size) then
+ begin
+ Move(PBuf^,HashBuffer[Index],Sizeof(HashBuffer)-Index);
+ Dec(Size,Sizeof(HashBuffer)-Index);
+ Inc(PBuf,Sizeof(HashBuffer)-Index);
+ Compress;
+ end else
+ begin
+ Move(PBuf^,HashBuffer[Index],Size);
+ Inc(Index,Size);
+ Size:= 0;
+ end;
+ end;
+end;
+
+procedure Final(var Digest);
+begin
+ HashBuffer[Index] := $80;
+ if Index >= 56 then Compress;
+ PDWord(@HashBuffer[56])^ := LenLo;
+ PDWord(@HashBuffer[60])^ := LenHi;
+ Compress;
+ Move(CurrentHash, Digest, Sizeof(CurrentHash));
+ Burn;
+end;
+
+begin
+ Init;
+ Update(s[1], Length(s));
+ Final(a);
+ result := a;
+end;
+//==============================================================================
+function MD5(const s: AnsiString): AnsiString;
+var
+ a : TMD5;
+ i : integer;
+begin
+ a := MD5_arr(s);
+ result := '';
+ for i := 0 to 15 do result := result + Int2Hex(a[i], 2);
+end;
+
+end.
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj
new file mode 100644
index 0000000000..b4485696b0
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{E38B4212-53BC-49A7-B821-9A99DB4774C6}</ProjectGuid>
+ <ProjectName>RC4</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary>true</IgnoreImportLibrary>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin10\lib</AdditionalLibraryDirectories>
+ <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin10\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin10\lib</AdditionalLibraryDirectories>
+ <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin10\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="src\cryptor.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\Version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\Version.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters
new file mode 100644
index 0000000000..5842bc8c63
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_10.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{d9ef4bec-040d-4cca-8faa-698d1448fb23}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{27e27fc6-b7a7-4c5c-a051-e9cad5b16d52}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="src\cryptor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\Version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\Version.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj
new file mode 100644
index 0000000000..5cdc8d3a47
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{E38B4212-53BC-49A7-B821-9A99DB4774C6}</ProjectGuid>
+ <ProjectName>RC4</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v110_xp</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary>true</IgnoreImportLibrary>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin11\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin11\lib</AdditionalLibraryDirectories>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin11\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin11\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="src\cryptor.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\Version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\Version.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj.filters
new file mode 100644
index 0000000000..5842bc8c63
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_11.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{d9ef4bec-040d-4cca-8faa-698d1448fb23}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{27e27fc6-b7a7-4c5c-a051-e9cad5b16d52}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="src\cryptor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\Version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\Version.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj
new file mode 100644
index 0000000000..8b9f9cf7ce
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{E38B4212-53BC-49A7-B821-9A99DB4774C6}</ProjectGuid>
+ <ProjectName>RC4</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\Cryptors\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\Cryptors\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary>true</IgnoreImportLibrary>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin12\lib</AdditionalLibraryDirectories>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>..\..\..\..\include\msapi</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin12\lib</AdditionalLibraryDirectories>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>..\..\..\..\include\msapi</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin12\lib</AdditionalLibraryDirectories>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>..\..\..\..\include\msapi</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <WarningLevel>Level3</WarningLevel>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\..\..\bin12\lib</AdditionalLibraryDirectories>
+ </Link>
+ <ResourceCompile>
+ <AdditionalIncludeDirectories>..\..\..\..\include\msapi</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="src\cryptor.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\Version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\Version.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj.filters
new file mode 100644
index 0000000000..5842bc8c63
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/rc4_12.vcxproj.filters
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{d9ef4bec-040d-4cca-8faa-698d1448fb23}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{27e27fc6-b7a7-4c5c-a051-e9cad5b16d52}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="src\cryptor.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\Version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\Version.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/res/Version.rc b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/res/Version.rc
new file mode 100644
index 0000000000..5bfbab4754
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/res/Version.rc
@@ -0,0 +1,38 @@
+// Microsoft Visual C++ generated resource script.
+//
+#ifdef APSTUDIO_INVOKED
+#error this file is not editable by Microsoft Visual C++
+#endif //APSTUDIO_INVOKED
+
+#include "afxres.h"
+#include "..\src\version.h"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION __FILEVERSION_STRING
+ PRODUCTVERSION __FILEVERSION_STRING
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x0L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "FileDescription", __DESCRIPTION
+ VALUE "InternalName", __PLUGIN_NAME
+ VALUE "LegalCopyright", __COPYRIGHT
+ VALUE "OriginalFilename", __FILENAME
+ VALUE "ProductName", __PLUGIN_NAME
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/Version.h b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/Version.h
new file mode 100644
index 0000000000..b3cf9b4129
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/Version.h
@@ -0,0 +1,11 @@
+#define __MAJOR_VERSION 0
+#define __MINOR_VERSION 0
+#define __RELEASE_NUM 0
+#define __BUILD_NUM 1
+
+#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
+
+#define __PLUGIN_NAME "RC4"
+#define __FILENAME "RC4.dll"
+#define __DESCRIPTION "Old, very easy to crack stream cipher"
+#define __COPYRIGHT "© 2012-13 Miranda NG Team"
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.cpp b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.cpp
new file mode 100644
index 0000000000..a673c11fe7
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/Cryptors/RC4/src/cryptor.cpp
@@ -0,0 +1,133 @@
+#include <windows.h>
+
+#define buf_size 1024
+
+typedef struct{
+ void* (__stdcall *GenerateKey)(char* key);
+ void (__stdcall *FreeKey)(void* key);
+ void (__stdcall *EncryptMem)(BYTE* data, int size, void* key);
+ void (__stdcall *DecryptMem)(BYTE* data, int size, void* key);
+
+ char* Name;
+ char* Info;
+ char* Author;
+ char* Site;
+ char* Email;
+
+ DWORD Version;
+
+ WORD uid;
+} Cryptor;
+
+typedef struct rc4_key
+{
+ BYTE state[256];
+ BYTE x;
+ BYTE y;
+} rc4_key;
+
+#define swap_byte(x,y) t = *(x); *(x) = *(y); *(y) = t
+
+void prepare_key(BYTE *key_data_ptr, size_t key_data_len, rc4_key *key)
+{
+ int i = 0;
+ BYTE t = 0;
+ BYTE index1 = 0;
+ BYTE index2 = 0;
+ BYTE* state = 0;
+ unsigned long counter = 0;
+
+ state = &key->state[0];
+ for(counter = 0; counter < 256; counter++)
+ state[counter] = (BYTE)counter;
+ key->x = 0;
+ key->y = 0;
+ index1 = 0;
+ index2 = 0;
+ for(counter = 0; counter < 256; counter++)
+ {
+ index2 = (key_data_ptr[index1] + state[counter] + index2) % 256;
+ swap_byte(&state[counter], &state[index2]);
+ index1 = (index1 + 1) % key_data_len;
+ }
+}
+
+void rc4(BYTE *buffer_ptr, int buffer_len, rc4_key *key)
+{
+ BYTE t = 0;
+ BYTE x = 0;
+ BYTE y = 0;
+ BYTE* state = 0;
+ BYTE xorIndex = 0;
+ DWORD counter = 0;
+ BYTE old_state[256];
+
+ x = key->x;
+ y = key->y;
+ state = &key->state[0];
+ memcpy(old_state, key->state, 256);
+ for(counter = 0; counter < (DWORD)buffer_len; counter++)
+ {
+ x = (x + 1) % 256;
+ y = (state[x] + y) % 256;
+ swap_byte(&state[x], &state[y]);
+ xorIndex = (state[x] + state[y]) % 256;
+ buffer_ptr[counter] ^= state[xorIndex];
+ }
+ memcpy(key->state, old_state, 256);
+ //key->x = x;
+ //key->y = y;
+}
+
+
+void zero_fill(BYTE * pBuf, size_t bufSize)
+{
+ size_t i;
+ for(i = 0; i < bufSize; i++)
+ pBuf[i] = 0;
+}
+
+void* __stdcall GenerateKey(char* pwd)
+{
+ rc4_key* key;
+ key = (rc4_key*)malloc(sizeof(rc4_key));
+ zero_fill((BYTE*)key, sizeof(key));
+ prepare_key((BYTE*)pwd, strlen(pwd), key);
+ return key;
+}
+
+void __stdcall FreeKey(void* key)
+{
+ free(key);
+}
+
+void __stdcall EncryptMem(BYTE* data, int size, void* key)
+{
+ rc4(data, size, (rc4_key*)key);
+}
+
+void __stdcall DecryptMem(BYTE* data, int size, void* key)
+{
+ rc4(data, size, (rc4_key*)key);
+}
+
+Cryptor cryptor =
+ {
+ GenerateKey,
+ FreeKey,
+ EncryptMem,
+ DecryptMem,
+ "RC4",
+ "Old, very easy to crack stream cipher.",
+ "Unknown",
+ "http://ru.wikipedia.org/wiki/RC4",
+ "nomail",
+ 0x00000100,
+ 0xDEAD
+ };
+
+
+extern "C" __declspec(dllexport) Cryptor* GetCryptor()
+{
+ return &cryptor;
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj
new file mode 100644
index 0000000000..7a548ce305
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>Dbx_mmap_SA</ProjectName>
+ <ProjectGuid>{6D3DC604-9CA0-45A2-85D7-1EFE3309F23B}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary>true</IgnoreImportLibrary>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <StringPooling>false</StringPooling>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <BaseAddress>0x5130000</BaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <StringPooling>false</StringPooling>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <BaseAddress>0x5130000</BaseAddress>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <BaseAddress>0x5130000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+ <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <BaseAddress>0x5130000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin10\lib</AdditionalLibraryDirectories>
+ <AdditionalOptions>/PDBALTPATH:%_PDB%</AdditionalOptions>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\Db3x_mmap\src\database.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp" />
+ <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="src\dbintf_sa.cpp" />
+ <ClCompile Include="src\dialogs.cpp" />
+ <ClCompile Include="src\stdafx.cpp">
+ <PrecompiledHeader>Create</PrecompiledHeader>
+ </ClCompile>
+ <ClCompile Include="src\security.cpp" />
+ <ClCompile Include="src\init.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Db3x_mmap\src\dbintf.h" />
+ <ClInclude Include="src\commonheaders.h" />
+ <ClInclude Include="src\dbintf_sa.h" />
+ <ClInclude Include="src\options.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\db3x_mmap.rc" />
+ <ResourceCompile Include="res\version.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj.filters
new file mode 100644
index 0000000000..ab9907fdb9
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_10.vcxproj.filters
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4faf3f6f-953b-4e0c-aa3a-246accd395cc}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{26f1ddd9-261b-4512-8da8-b3e786b0e35c}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{4eb47a45-3e87-400a-bfb3-05c2d9cbb32b}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ <Filter Include="Mmap files">
+ <UniqueIdentifier>{9b94a455-bdbc-497d-b375-18c090cccc36}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Mmap files\Checker">
+ <UniqueIdentifier>{9236b59b-8511-4248-adfd-5ad1f36788dc}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="src\dialogs.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\init.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\security.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\database.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\dbintf_sa.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="src\stdafx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\commonheaders.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\options.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\dbintf_sa.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\Db3x_mmap\src\dbintf.h">
+ <Filter>Mmap files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\db3x_mmap.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ <ResourceCompile Include="res\version.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj
new file mode 100644
index 0000000000..6f1fd99934
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>Dbx_mmap_SA</ProjectName>
+ <ProjectGuid>{6D3DC604-9CA0-45A2-85D7-1EFE3309F23B}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v110_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v110_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v110_xp</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary>true</IgnoreImportLibrary>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <StringPooling>false</StringPooling>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <BaseAddress>0x5130000</BaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin11\lib</AdditionalLibraryDirectories>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <StringPooling>false</StringPooling>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <BaseAddress>0x5130000</BaseAddress>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin11\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <BaseAddress>0x5130000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin11\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <BaseAddress>0x5130000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin11\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\Db3x_mmap\src\database.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp" />
+ <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="src\dbintf_sa.cpp" />
+ <ClCompile Include="src\dialogs.cpp" />
+ <ClCompile Include="src\stdafx.cpp">
+ <PrecompiledHeader>Create</PrecompiledHeader>
+ </ClCompile>
+ <ClCompile Include="src\security.cpp" />
+ <ClCompile Include="src\init.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Db3x_mmap\src\dbintf.h" />
+ <ClInclude Include="src\commonheaders.h" />
+ <ClInclude Include="src\dbintf_sa.h" />
+ <ClInclude Include="src\options.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\db3x_mmap.rc" />
+ <ResourceCompile Include="res\version.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj.filters
new file mode 100644
index 0000000000..ab9907fdb9
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_11.vcxproj.filters
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4faf3f6f-953b-4e0c-aa3a-246accd395cc}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{26f1ddd9-261b-4512-8da8-b3e786b0e35c}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{4eb47a45-3e87-400a-bfb3-05c2d9cbb32b}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ <Filter Include="Mmap files">
+ <UniqueIdentifier>{9b94a455-bdbc-497d-b375-18c090cccc36}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Mmap files\Checker">
+ <UniqueIdentifier>{9236b59b-8511-4248-adfd-5ad1f36788dc}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="src\dialogs.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\init.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\security.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\database.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\dbintf_sa.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="src\stdafx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\commonheaders.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\options.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\dbintf_sa.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\Db3x_mmap\src\dbintf.h">
+ <Filter>Mmap files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\db3x_mmap.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ <ResourceCompile Include="res\version.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj
new file mode 100644
index 0000000000..8168d59428
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>Dbx_mmap_SA</ProjectName>
+ <ProjectGuid>{6D3DC604-9CA0-45A2-85D7-1EFE3309F23B}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\Obj\$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64\Obj\$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary>true</IgnoreImportLibrary>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <StringPooling>false</StringPooling>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <BaseAddress>0x5130000</BaseAddress>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
+ <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <StringPooling>false</StringPooling>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <BaseAddress>0x5130000</BaseAddress>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <BaseAddress>0x5130000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <AdditionalIncludeDirectories>..\..\include;..\ExternalAPI;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonheaders.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <ExceptionHandling>false</ExceptionHandling>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\include;..\..\include\msapi</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <BaseAddress>0x5130000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <SubSystem>Windows</SubSystem>
+ <AdditionalLibraryDirectories>$(ProfileDir)..\..\bin12\lib</AdditionalLibraryDirectories>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\Db3x_mmap\src\database.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp" />
+ <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp" />
+ <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+ <PrecompiledHeaderFile>..\commonheaders.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="src\dbintf_sa.cpp" />
+ <ClCompile Include="src\dialogs.cpp" />
+ <ClCompile Include="src\stdafx.cpp">
+ <PrecompiledHeader>Create</PrecompiledHeader>
+ </ClCompile>
+ <ClCompile Include="src\security.cpp" />
+ <ClCompile Include="src\init.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Db3x_mmap\src\dbintf.h" />
+ <ClInclude Include="src\commonheaders.h" />
+ <ClInclude Include="src\dbintf_sa.h" />
+ <ClInclude Include="src\options.h" />
+ <ClInclude Include="src\resource.h" />
+ <ClInclude Include="src\version.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\db3x_mmap.rc" />
+ <ResourceCompile Include="res\version.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj.filters b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj.filters
new file mode 100644
index 0000000000..ab9907fdb9
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/db3x_mmap_sa_12.vcxproj.filters
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4faf3f6f-953b-4e0c-aa3a-246accd395cc}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{26f1ddd9-261b-4512-8da8-b3e786b0e35c}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{4eb47a45-3e87-400a-bfb3-05c2d9cbb32b}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ <Filter Include="Mmap files">
+ <UniqueIdentifier>{9b94a455-bdbc-497d-b375-18c090cccc36}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Mmap files\Checker">
+ <UniqueIdentifier>{9236b59b-8511-4248-adfd-5ad1f36788dc}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="src\dialogs.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\init.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\security.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbmodulechain.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbcache.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbcontacts.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\database.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbintf.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="src\dbintf_sa.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbheaders.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbsettings.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbevents.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbintfm.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\aggressive.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\contactchain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\disk.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\eventchain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\finaltasks.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\initialchecks.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\modulechain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\settingschain.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="..\db3x_mmap\src\dbtool\user.cpp">
+ <Filter>Mmap files\Checker</Filter>
+ </ClCompile>
+ <ClCompile Include="src\stdafx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Db3x_mmap\src\dbcrypt.cpp">
+ <Filter>Mmap files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="src\commonheaders.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\options.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="src\dbintf_sa.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\Db3x_mmap\src\dbintf.h">
+ <Filter>Mmap files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="res\db3x_mmap.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ <ResourceCompile Include="res\version.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/res/db3x_mmap.rc b/plugins/!Deprecated/Dbx_mmap_SA/res/db3x_mmap.rc
new file mode 100644
index 0000000000..ddd13c7b17
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/res/db3x_mmap.rc
@@ -0,0 +1,275 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "..\src\resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include <winres.h>
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Ðóññêèé (Ðîññèÿ) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+#pragma code_page(1251)
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_LOGIN DIALOGEX 0, 0, 190, 86
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW
+CAPTION "Login to Miranda NG"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "",IDC_HEADERBAR,"MHeaderbarCtrl",0x0,0,0,190,26
+ CTEXT "EN",IDC_LANG,158,34,13,13,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_USERPASS,21,34,128,14,ES_PASSWORD | ES_AUTOHSCROLL | WS_GROUP
+ DEFPUSHBUTTON "OK",IDOK,36,64,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,102,64,50,14
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,0,55,190,1
+END
+
+IDD_NEWPASS DIALOGEX 0, 0, 190, 102
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_TOPMOST | WS_EX_TOOLWINDOW
+CAPTION "New password"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "",IDC_HEADERBAR,"MHeaderbarCtrl",0x0,0,0,190,26
+ CTEXT "EN",IDC_LANG,158,34,13,13,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_USERPASS1,21,34,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+ EDITTEXT IDC_USERPASS2,21,54,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+ DEFPUSHBUTTON "OK",IDOK,36,84,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,100,84,50,14
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,0,77,190,1
+END
+
+IDD_CHANGEPASS DIALOGEX 0, 0, 190, 148
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_TOOLWINDOW
+CAPTION "Change password"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "",IDC_HEADERBAR,"MHeaderbarCtrl",0x0,0,0,190,26
+ CTEXT "EN",IDC_LANG,158,42,13,13,SS_CENTERIMAGE | NOT WS_GROUP
+ EDITTEXT IDC_OLDPASS,21,42,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+ EDITTEXT IDC_NEWPASS1,21,77,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+ EDITTEXT IDC_NEWPASS2,21,98,128,14,ES_PASSWORD | ES_AUTOHSCROLL
+ DEFPUSHBUTTON "Change",IDOK,11,127,50,14
+ PUSHBUTTON "Remove",IDREMOVE,69,127,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,126,127,50,14
+ LTEXT "New password",IDC_NEWPASSINFO,11,66,163,10,0,WS_EX_TRANSPARENT
+ CONTROL "",IDC_STATIC,"Static",SS_ETCHEDFRAME,0,119,190,1
+ LTEXT "Old password",IDC_NEWPASSINFO2,11,31,140,10,0,WS_EX_TRANSPARENT
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_CHANGEPASS, DIALOG
+ BEGIN
+ TOPMARGIN, 7
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Icon
+//
+
+// Icon with lowest ID value placed first to ensure application icon
+// remains consistent on all systems.
+IDI_ICON2 ICON "logo.ico"
+IDI_ICON3 ICON "pass.ico"
+#endif // Ðóññêèé (Ðîññèÿ) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Àíãëèéñêèé (ÑØÀ) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_INSTALLINI DIALOGEX 0, 0, 212, 102
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "Install Database Settings"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "Yes",IDOK,26,83,50,14
+ PUSHBUTTON "No",IDCANCEL,81,83,50,14
+ LTEXT "A file containing new database settings has been placed in the Miranda NG directory.",IDC_STATIC,5,5,202,16
+ LTEXT "Do you want to import the settings now?",IDC_STATIC,5,69,202,8
+ PUSHBUTTON "No to all",IDC_NOTOALL,136,83,50,14
+ LTEXT "",IDC_ININAME,5,24,143,16,SS_NOPREFIX | SS_CENTERIMAGE
+ PUSHBUTTON "&View contents",IDC_VIEWINI,149,25,58,14
+ LTEXT "Security systems to prevent malicious changes are in place and you will be warned before changes that are not known to be safe.",IDC_SECURITYINFO,5,43,202,24
+END
+
+IDD_WARNINICHANGE DIALOGEX 0, 0, 187, 113
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "Database Setting Change"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+ LTEXT "Database settings are being imported from",IDC_STATIC,5,5,177,8
+ CONTROL "",IDC_ININAME,"Static",SS_SIMPLE | SS_NOPREFIX | WS_GROUP,5,13,177,8
+ LTEXT "This file wishes to change the setting",IDC_STATIC,5,24,177,8
+ CONTROL "",IDC_SETTINGNAME,"Static",SS_SIMPLE | SS_NOPREFIX | WS_GROUP,12,33,170,8
+ LTEXT "to the value",IDC_STATIC,5,42,177,8
+ CONTROL "",IDC_NEWVALUE,"Static",SS_SIMPLE | SS_NOPREFIX | WS_GROUP,12,51,170,8
+ LTEXT "",IDC_SECURITYINFO,5,60,177,8
+ LTEXT "Do you want to allow this change?",IDC_STATIC,5,71,177,8
+ CONTROL "&Allow all further changes to this section",IDC_WARNNOMORE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,80,169,10
+ DEFPUSHBUTTON "&Yes",IDYES,5,94,50,14
+ PUSHBUTTON "&No",IDNO,59,94,50,14
+ PUSHBUTTON "Cancel Import",IDCANCEL,123,94,59,14
+END
+
+IDD_INIIMPORTDONE DIALOGEX 0, 0, 186, 73
+STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
+EXSTYLE WS_EX_CONTROLPARENT
+CAPTION "Database Import Complete"
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+ LTEXT "The import has completed from",IDC_STATIC,5,5,176,8
+ CONTROL "",IDC_ININAME,"Static",SS_SIMPLE | SS_NOPREFIX | WS_GROUP,5,13,176,8
+ LTEXT "What do you want to do with the file now?",IDC_STATIC,5,24,176,8
+ PUSHBUTTON "&Recycle",IDC_RECYCLE,5,36,50,14
+ PUSHBUTTON "&Delete",IDC_DELETE,68,36,50,14
+ EDITTEXT IDC_NEWNAME,5,55,117,12,ES_AUTOHSCROLL
+ PUSHBUTTON "&Move/Rename",IDC_MOVE,124,54,57,14
+ PUSHBUTTON "&Leave",IDC_LEAVE,131,36,50,14
+END
+
+IDD_OPTIONS DIALOGEX 0, 0, 318, 188
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_CHILD
+FONT 8, "MS Shell Dlg", 0, 0, 0x0
+BEGIN
+ GROUPBOX "Database encryption",IDC_ENC,4,87,307,96,0,WS_EX_RIGHT
+ CONTROL "",IDC_MODULES,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,6,3,305,80
+ LTEXT "Info:",IDC_STATIC,9,97,35,8,0,WS_EX_RIGHT
+ EDITTEXT IDC_INFO,49,97,256,21,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL
+ LTEXT "Author:",IDC_STATIC,9,123,35,8,0,WS_EX_RIGHT
+ EDITTEXT IDC_AUTHOR,49,123,256,12,ES_AUTOHSCROLL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER
+ LTEXT "Site:",IDC_STATIC,9,135,35,8,0,WS_EX_RIGHT
+ CONTROL "",IDC_SITE,"Hyperlink",WS_TABSTOP,49,135,256,12
+ LTEXT "Email:",IDC_STATIC,9,147,35,8,0,WS_EX_RIGHT
+ CONTROL "",IDC_EMAIL,"Hyperlink",WS_TABSTOP,49,147,256,12
+ LTEXT "Unique ID:",IDC_STATIC,9,166,35,8,0,WS_EX_RIGHT
+ EDITTEXT IDC_UID,49,166,256,12,ES_AUTOHSCROLL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_INSTALLINI, DIALOG
+ BEGIN
+ LEFTMARGIN, 5
+ RIGHTMARGIN, 207
+ TOPMARGIN, 5
+ BOTTOMMARGIN, 97
+ END
+
+ IDD_WARNINICHANGE, DIALOG
+ BEGIN
+ LEFTMARGIN, 5
+ RIGHTMARGIN, 182
+ TOPMARGIN, 5
+ BOTTOMMARGIN, 108
+ END
+
+ IDD_INIIMPORTDONE, DIALOG
+ BEGIN
+ LEFTMARGIN, 5
+ RIGHTMARGIN, 181
+ TOPMARGIN, 5
+ BOTTOMMARGIN, 68
+ END
+
+ IDD_OPTIONS, DIALOG
+ BEGIN
+ LEFTMARGIN, 6
+ RIGHTMARGIN, 311
+ VERTGUIDE, 9
+ VERTGUIDE, 44
+ VERTGUIDE, 49
+ VERTGUIDE, 193
+ VERTGUIDE, 248
+ VERTGUIDE, 305
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 181
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "..\\src\\resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include <winres.h>\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // Àíãëèéñêèé (ÑØÀ) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/res/logo.ico b/plugins/!Deprecated/Dbx_mmap_SA/res/logo.ico
new file mode 100644
index 0000000000..7602e30cbe
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/res/logo.ico
Binary files differ
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/res/pass.ico b/plugins/!Deprecated/Dbx_mmap_SA/res/pass.ico
new file mode 100644
index 0000000000..2e51427986
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/res/pass.ico
Binary files differ
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/res/version.rc b/plugins/!Deprecated/Dbx_mmap_SA/res/version.rc
new file mode 100644
index 0000000000..5bfbab4754
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/res/version.rc
@@ -0,0 +1,38 @@
+// Microsoft Visual C++ generated resource script.
+//
+#ifdef APSTUDIO_INVOKED
+#error this file is not editable by Microsoft Visual C++
+#endif //APSTUDIO_INVOKED
+
+#include "afxres.h"
+#include "..\src\version.h"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION __FILEVERSION_STRING
+ PRODUCTVERSION __FILEVERSION_STRING
+ FILEFLAGSMASK 0x17L
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x4L
+ FILETYPE 0x0L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "FileDescription", __DESCRIPTION
+ VALUE "InternalName", __PLUGIN_NAME
+ VALUE "LegalCopyright", __COPYRIGHT
+ VALUE "OriginalFilename", __FILENAME
+ VALUE "ProductName", __PLUGIN_NAME
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/commonheaders.h b/plugins/!Deprecated/Dbx_mmap_SA/src/commonheaders.h
new file mode 100644
index 0000000000..877f0ff65d
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/commonheaders.h
@@ -0,0 +1,110 @@
+/*
+
+Miranda IM: the free IM client for Microsoft* Windows*
+
+Copyright 2000-2003 Miranda ICQ/IM project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#define _CRT_SECURE_NO_WARNINGS
+
+#define _WIN32_WINNT 0x0501
+
+#include <windows.h>
+#include <shlobj.h>
+#include <time.h>
+#include <process.h>
+#include <memory>
+
+#include <newpluginapi.h>
+#include <win2k.h>
+#include <m_system_cpp.h>
+#include <m_database.h>
+#include <m_genmenu.h>
+#include <m_langpack.h>
+#include <m_options.h>
+#include <m_skin.h>
+#include <m_crypto.h>
+
+#include <m_folders.h>
+
+//own headers
+#include "dbintf_sa.h"
+#include "..\Db3x_mmap\src\database.h"
+#include "resource.h"
+#include "version.h"
+
+extern HINSTANCE g_hInst;
+extern HGENMENU hSetPwdMenu;
+
+#ifdef __GNUC__
+#define mir_i64(x) (x##LL)
+#else
+#define mir_i64(x) (x##i64)
+#endif
+
+//global procedures
+
+struct DlgStdInProcParam
+{
+ CDbxMmapSA *p_Db;
+ const TCHAR *pStr;
+};
+INT_PTR CALLBACK DlgStdInProc(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam);
+
+struct DlgChangePassParam
+{
+ CDbxMmapSA *p_Db;
+ char *pszNewPass;
+};
+INT_PTR CALLBACK DlgChangePass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam);
+
+INT_PTR CALLBACK DlgStdNewPass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam);
+INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
+
+void xModifyMenu(HGENMENU hMenu,long flags,const TCHAR* name, HICON hIcon);
+
+extern DBSignature dbSignature, dbSignatureSecured, dbSignatureNonSecured;
+
+extern LIST<CDbxMmapSA> g_Dbs;
+
+typedef struct{
+ void* (__stdcall *GenerateKey)(char* pwd);
+ void (__stdcall *FreeKey)(void* key);
+ void (__stdcall *EncryptMem)(BYTE* data, int size, void* key);
+ void (__stdcall *DecryptMem)(BYTE* data, int size, void* key);
+
+ char* Name;
+ char* Info;
+ char* Author;
+ char* Site;
+ char* Email;
+
+ DWORD Version;
+
+ WORD uid;
+} Cryptor;
+
+typedef struct{
+ TCHAR dllname[MAX_PATH];
+ HMODULE hLib;
+ Cryptor* cryptor;
+} CryptoModule;
+
+extern Cryptor* CryptoEngine;
+extern void* key;
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.cpp
new file mode 100644
index 0000000000..4da5d4ff9d
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.cpp
@@ -0,0 +1,257 @@
+/*
+
+Miranda NG: the free IM client for Microsoft* Windows*
+
+Copyright 2012-13 Miranda NG project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include "commonheaders.h"
+
+#define NeedBytes(n) if(bytesRemaining<(n)) pBlob=(PBYTE)DBRead(ofsBlobPtr,(n),&bytesRemaining)
+#define MoveAlong(n) {int x=n; pBlob+=(x); ofsBlobPtr+=(x); bytesRemaining-=(x);}
+#define VLT(n) ((n==DBVT_UTF8)?DBVT_ASCIIZ:n)
+
+DBSignature dbSignatureSecured = {"Miranda ICQ SD",0x1A};
+DBSignature dbSignatureNonSecured = {"Miranda ICQ SA",0x1A};
+
+CDbxMmapSA::CDbxMmapSA(const TCHAR* tszFileName) :
+ CDb3Mmap(tszFileName)
+{
+}
+
+int CDbxMmapSA::Load(bool bSkipInit)
+{
+ if ( CDb3Mmap::Load(bSkipInit) != ERROR_SUCCESS)
+ return 1;
+
+ if ( CheckDbHeaders())
+ return 1;
+
+ if (!bSkipInit) {
+ TCHAR* p = _tcsrchr(m_tszProfileName, '\\');
+ if (!p)
+ return 1;
+
+ if (m_bEncoding && !CheckPassword( LOWORD(m_dbHeader.version), p+1))
+ return 1;
+
+ InitDialogs();
+ }
+
+ return 0;
+}
+
+int CDbxMmapSA::CheckDbHeaders()
+{
+ if ( memcmp(m_dbHeader.signature, &dbSignatureSecured, sizeof(m_dbHeader.signature)) == 0)
+ m_bEncoding = true;
+ else if ( memcmp(m_dbHeader.signature, &dbSignatureNonSecured, sizeof(m_dbHeader.signature)) == 0)
+ m_bEncoding = false;
+ else {
+ m_bEncoding = false;
+ if ( memcmp(m_dbHeader.signature,&dbSignature,sizeof(m_dbHeader.signature)))
+ return EGROKPRF_UNKHEADER;
+ if ( LOWORD(m_dbHeader.version) != 0x0700)
+ return EGROKPRF_VERNEWER;
+ }
+ if (m_dbHeader.ofsUser == 0)
+ return EGROKPRF_DAMAGED;
+ return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+static DWORD __inline GetSettingValueLength(PBYTE pSetting)
+{
+ if(pSetting[0]&DBVTF_VARIABLELENGTH) return 2+*(PWORD)(pSetting+1);
+ return pSetting[0];
+}
+
+void CDbxMmapSA::EncodeContactSettings(HANDLE hContact)
+{
+ if (!hContact)
+ hContact = (HANDLE)m_dbHeader.ofsUser;
+
+ DBContact *contact = (DBContact *)DBRead((DWORD)hContact, sizeof(DBContact), NULL);
+ if (contact->ofsFirstSettings) {
+ DBContactSettings *setting = (struct DBContactSettings *)DBRead(contact->ofsFirstSettings, sizeof(struct DBContactSettings), NULL);
+ DWORD offset = contact->ofsFirstSettings;
+ while( true ) {
+ DWORD ofsBlobPtr;
+ PBYTE pBlob;
+ int bytesRemaining;
+ DWORD len;
+
+ ofsBlobPtr = offset + offsetof(struct DBContactSettings,blob);
+ pBlob = (PBYTE)DBRead(ofsBlobPtr,1,&bytesRemaining);
+ while(pBlob[0]) {
+ NeedBytes(1);
+ NeedBytes(1+pBlob[0]);
+ MoveAlong(1+pBlob[0]);
+
+ NeedBytes(5);
+
+ switch(pBlob[0]) {
+ case DBVT_DELETED: break;
+ case DBVT_BYTE: break;
+ case DBVT_WORD:
+ CryptoEngine->EncryptMem(pBlob+1, 2, key);
+ break;
+
+ case DBVT_DWORD:
+ CryptoEngine->EncryptMem(pBlob+1, 4, key);
+ break;
+
+ case DBVT_UTF8:
+ case DBVT_ASCIIZ:
+ case DBVT_BLOB:
+ NeedBytes(3+*(PWORD)(pBlob+1));
+ len = *(PWORD)(pBlob+1);
+
+ CryptoEngine->EncryptMem(pBlob+3, len, key);
+ break;
+ }
+ NeedBytes(3);
+ MoveAlong(1+GetSettingValueLength(pBlob));
+ NeedBytes(1);
+ }
+
+ if (!setting->ofsNext)
+ break;
+
+ offset = setting->ofsNext;
+ setting = (struct DBContactSettings *)DBRead(setting->ofsNext, sizeof(struct DBContactSettings), NULL);
+ }
+ }
+}
+
+void CDbxMmapSA::DecodeContactSettings(HANDLE hContact)
+{
+ if (!hContact)
+ hContact = (HANDLE)m_dbHeader.ofsUser;
+
+ DBContact *contact = (DBContact *)DBRead((DWORD)hContact, sizeof(DBContact), NULL);
+ if (contact->ofsFirstSettings){
+ DBContactSettings *setting = (struct DBContactSettings *)DBRead(contact->ofsFirstSettings, sizeof(struct DBContactSettings), NULL);
+ DWORD offset = contact->ofsFirstSettings;
+ while (true) {
+ DWORD ofsBlobPtr;
+ PBYTE pBlob;
+ int bytesRemaining;
+ DWORD len;
+ ofsBlobPtr = offset + offsetof(struct DBContactSettings,blob);
+ pBlob = (PBYTE)DBRead(ofsBlobPtr,1,&bytesRemaining);
+ while(pBlob[0]) {
+ NeedBytes(1);
+ NeedBytes(1+pBlob[0]);
+ //CopyMemory(szSetting,pBlob+1,pBlob[0]); szSetting[pBlob[0]] = 0;
+ MoveAlong(1+pBlob[0]);
+
+ NeedBytes(5);
+
+ switch(pBlob[0]) {
+ case DBVT_DELETED: break;
+ case DBVT_BYTE: break;
+ case DBVT_WORD:
+ CryptoEngine->DecryptMem(pBlob+1, 2, key);
+ break;
+
+ case DBVT_DWORD:
+ CryptoEngine->DecryptMem(pBlob+1, 4, key);
+ break;
+
+ case DBVT_UTF8:
+ case DBVT_ASCIIZ:
+ case DBVT_BLOB:
+ NeedBytes(3+*(PWORD)(pBlob+1));
+ len = *(PWORD)(pBlob+1);
+
+ CryptoEngine->DecryptMem(pBlob+3, len, key);
+ break;
+ }
+ NeedBytes(3);
+ MoveAlong(1+GetSettingValueLength(pBlob));
+ NeedBytes(1);
+ }
+
+ if (!setting->ofsNext)
+ break;
+
+ offset = setting->ofsNext;
+ setting = (struct DBContactSettings *)DBRead(setting->ofsNext, sizeof(struct DBContactSettings), NULL);
+ }
+ }
+}
+
+void CDbxMmapSA::EncodeEvent(HANDLE hEvent)
+{
+ DBEvent *dbe = (DBEvent*)DBRead((DWORD)hEvent,sizeof(DBEvent),NULL);
+ if (dbe->signature = DBEVENT_SIGNATURE)
+ CryptoEngine->EncryptMem(DBRead((DWORD)hEvent + offsetof(DBEvent,blob), dbe->cbBlob, NULL), dbe->cbBlob, key);
+}
+
+void CDbxMmapSA::DecodeEvent(HANDLE hEvent)
+{
+ DBEvent *dbe = (DBEvent*)DBRead((DWORD)hEvent,sizeof(DBEvent),NULL);
+ if (dbe->signature = DBEVENT_SIGNATURE)
+ CryptoEngine->DecryptMem(DBRead((DWORD)hEvent + offsetof(DBEvent,blob), dbe->cbBlob, NULL), dbe->cbBlob, key);
+}
+
+void CDbxMmapSA::EncodeContactEvents(HANDLE hContact)
+{
+ HANDLE hEvent = FindFirstEvent(hContact);
+ while (hEvent != 0) {
+ EncodeEvent(hEvent);
+ hEvent = FindNextEvent(hEvent);
+ }
+}
+
+void CDbxMmapSA::DecodeContactEvents(HANDLE hContact)
+{
+ HANDLE hEvent = FindFirstEvent(hContact);
+ while (hEvent != 0) {
+ DecodeEvent(hEvent);
+ hEvent = FindNextEvent(hEvent);
+ }
+}
+
+int CDbxMmapSA::WorkInitialCheckHeaders(void)
+{
+ if (m_bEncoding) {
+ cb->pfnAddLogMessage(STATUS_SUCCESS,TranslateT("Database is Secured MMAP database"));
+
+ TCHAR* p = _tcsrchr(m_tszProfileName, '\\');
+ if (!p)
+ return ERROR_BAD_FORMAT;
+
+ if (!CheckPassword( LOWORD(m_dbHeader.version), p+1)) {
+ cb->pfnAddLogMessage(STATUS_FATAL,TranslateT("You are not authorized for access to Database"));
+ return ERROR_BAD_FORMAT;
+ }
+
+ cb->pfnAddLogMessage(STATUS_SUCCESS,TranslateT("Secured MMAP: authorization successful"));
+ }
+
+ if ( LOWORD(m_dbHeader.version) != 0x0700 && !m_bEncoding) {
+ cb->pfnAddLogMessage(STATUS_FATAL,TranslateT("Database is marked as belonging to an unknown version of Miranda"));
+ return ERROR_BAD_FORMAT;
+ }
+
+ return ERROR_SUCCESS;
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.h b/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.h
new file mode 100644
index 0000000000..2358d55d69
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/dbintf_sa.h
@@ -0,0 +1,76 @@
+/*
+
+Miranda NG: the free IM client for Microsoft* Windows*
+
+Copyright 2012-13 Miranda NG project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <m_db_int.h>
+
+#include "..\Db3x_mmap\src\dbintf.h"
+
+struct CDbxMmapSA : public CDb3Mmap
+{
+ CDbxMmapSA(const TCHAR* tszFileName);
+
+ int CheckPassword(WORD checkWord, TCHAR *szDBName);
+ int CheckDbHeaders(void);
+
+ void ChangePwd();
+ void EncryptDB();
+ void DecryptDB();
+ void RecryptDB();
+
+ int Load(bool bSkipInit);
+
+ bool m_bEncoding, bEncProcess;
+
+protected:
+ virtual void EncodeCopyMemory(void *dst, void *src, size_t size);
+ virtual void DecodeCopyMemory(void *dst, void *src, size_t size);
+ virtual void EncodeDBWrite(DWORD ofs, void *src, int size);
+ virtual void DecodeDBWrite(DWORD ofs, void *src, int size);
+
+ virtual int WorkInitialCheckHeaders(void);
+
+protected:
+ int CheckProto(HANDLE hContact, const char *proto);
+
+ void EncoderInit();
+ void EncodeContactEvents(HANDLE hContact);
+ void EncodeEvent(HANDLE hEvent);
+ void DecodeEvent(HANDLE hEvent);
+ void DecodeContactEvents(HANDLE hContact);
+
+ void DecodeContactSettings(HANDLE hContact);
+ void EncodeContactSettings(HANDLE hContact);
+
+ void WritePlainHeader();
+ void WriteCryptHeader();
+
+ void EncodeAll();
+ void DecodeAll();
+
+public:
+ char encryptKey[255];
+ size_t encryptKeyLength;
+
+private:
+ void InitDialogs(void);
+};
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/dialogs.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/dialogs.cpp
new file mode 100644
index 0000000000..1b395658a2
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/dialogs.cpp
@@ -0,0 +1,526 @@
+#include "commonheaders.h"
+#include <m_utils.h>
+#include <m_clist.h>
+#include <m_options.h>
+#include <m_icolib.h>
+
+#define MS_DB_CHANGEPASSWORD "DB/ChangePassword"
+
+extern LIST<CryptoModule> arCryptors;
+
+HGENMENU hSetPwdMenu;
+
+BOOL ShowDlgItem(HWND hwndDlg, int iIDCtrl, BOOL bShow)
+{
+ HWND hwndCtrl = GetDlgItem(hwndDlg, iIDCtrl);
+ if (!hwndCtrl) return FALSE;
+
+ // Avoid flickering
+ if (bShow && IsWindowVisible(hwndCtrl))
+ return TRUE;
+
+ return ShowWindow(hwndCtrl, (bShow ? SW_SHOW : SW_HIDE));
+}
+
+BOOL EnableDlgItem(HWND hwndDlg, int iIDCtrl, BOOL bEnable)
+{
+ HWND hwndCtrl = GetDlgItem(hwndDlg, iIDCtrl);
+ if (!hwndCtrl) return FALSE;
+
+ // Avoid flickering
+ if (IsWindowEnabled(hwndCtrl) == bEnable)
+ return (bEnable == FALSE);
+
+ return EnableWindow(hwndCtrl, bEnable);
+}
+
+BOOL IsDlgItemEnabled(HWND hwndDlg, int iIDCtrl)
+{
+ HWND hwndCtrl = GetDlgItem(hwndDlg, iIDCtrl);
+ if (!hwndCtrl) return FALSE;
+ return IsWindowEnabled(hwndCtrl);
+}
+
+static int OptionsInit(void *obj, WPARAM wParam, LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp = { sizeof(odp) };
+ odp.position = -790000000;
+ odp.hInstance = g_hInst;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
+ odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR;
+ odp.ptszTitle = LPGENT("Database Features");
+ odp.ptszGroup = LPGENT("Database");
+ odp.pfnDlgProc = DlgProcOptions;
+ odp.dwInitParam = (LPARAM)obj;
+ Options_AddPage(wParam, &odp);
+ return 0;
+}
+
+INT_PTR ChangePassword(void* obj, LPARAM wParam, LPARAM lParam)
+{
+ CDbxMmapSA *p = (CDbxMmapSA*)obj;
+
+ if (p->m_bEncoding)
+ p->ChangePwd();
+ else
+ p->EncryptDB();
+
+ return 0;
+}
+
+void xModifyMenu(HGENMENU hMenu,long flags,const TCHAR* name, HICON hIcon)
+{
+ CLISTMENUITEM mi = { sizeof(mi) };
+ mi.flags = CMIM_FLAGS | CMIF_TCHAR;
+ mi.flags |= name ? CMIM_NAME : 0;
+ mi.flags |= hIcon ? CMIM_ICON : 0;
+ mi.flags |= flags;
+ mi.ptszName = (TCHAR*)name;
+ mi.hIcon = hIcon;
+ Menu_ModifyItem(hMenu, &mi);
+}
+
+static IconItem iconList[] =
+{
+ { LPGEN("Database"), "database", IDI_ICON2 },
+ { LPGEN("Change Password"), "password", IDI_ICON3 }
+};
+
+int InitMenus(void *obj, WPARAM, LPARAM)
+{
+ CDbxMmapSA *p = (CDbxMmapSA*)obj;
+
+ HookEventObj(ME_OPT_INITIALISE, OptionsInit, obj);
+
+ Icon_Register(g_hInst, LPGEN("Database"), iconList, SIZEOF(iconList));
+
+ // main menu item
+ CLISTMENUITEM mi = { sizeof(mi) };
+ mi.flags = CMIM_ALL | CMIF_TCHAR;
+ mi.icolibItem = iconList[1].hIcolib;
+ mi.ptszName = (p->m_bEncoding) ? LPGENT("Change password") : LPGENT("Set password");
+ mi.ptszPopupName = LPGENT("Database");
+ mi.pszService = MS_DB_CHANGEPASSWORD;
+ mi.position = 500000000;
+ hSetPwdMenu = Menu_AddMainMenuItem(&mi);
+ return 0;
+}
+
+void CDbxMmapSA::InitDialogs()
+{
+ HookEventObj(ME_SYSTEM_MODULESLOADED, InitMenus, this);
+ CreateServiceFunctionObj(MS_DB_CHANGEPASSWORD, ChangePassword, this);
+}
+
+INT_PTR CALLBACK DlgProcOptions(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ HWND hwndList = GetDlgItem(hwndDlg, IDC_MODULES);
+ CDbxMmapSA *p_Db = (CDbxMmapSA*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
+ LVITEM item;
+ int i, iRow, iIndex;
+ NMLISTVIEW * hdr = (NMLISTVIEW *) lParam;
+ WORD uid;
+
+ switch ( msg ) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault( hwndDlg );
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, lParam);
+ p_Db = (CDbxMmapSA*)lParam;
+ {
+ HIMAGELIST hIml = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR32, 2, 0);
+ ImageList_AddIcon(hIml, LoadSkinnedIcon(SKINICON_OTHER_LOADED));
+ ImageList_AddIcon(hIml, LoadSkinnedIcon(SKINICON_OTHER_NOTLOADED));
+ ListView_SetImageList( hwndList, hIml, LVSIL_SMALL );
+
+ LVCOLUMN col;
+ col.pszText = NULL;
+ col.mask = LVCF_TEXT | LVCF_WIDTH;
+ col.fmt = LVCFMT_LEFT;
+ col.cx = 50;
+ ListView_InsertColumn(hwndList, 1, &col);
+
+ col.pszText = TranslateT("Dll");
+ col.mask = LVCF_TEXT | LVCF_WIDTH;
+ col.fmt = LVCFMT_LEFT;
+ col.cx = 1000;
+ ListView_InsertColumn(hwndList, 2, &col);
+
+ col.pszText = TranslateT("Name");
+ col.cx = 1000;
+ ListView_InsertColumn(hwndList, 3, &col);
+
+ col.pszText = TranslateT("Version");
+ col.cx = 1000;
+ ListView_InsertColumn(hwndList, 4, &col);
+ }
+
+ ListView_SetExtendedListViewStyleEx(hwndList, 0, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT | LVS_EX_SUBITEMIMAGES);
+
+ uid = db_get_w(NULL, "SecureMMAP", "CryptoModule", 0);
+
+ for (i = 0; i < arCryptors.getCount(); i++) {
+ TCHAR buf[100];
+
+ item.mask = LVIF_TEXT;
+ item.iItem = i;
+ item.iSubItem = 0;
+ item.pszText = NULL;
+ iRow = ListView_InsertItem(hwndList, &item);
+
+ ListView_SetItemText(hwndList, iRow, 1, arCryptors[i]->dllname);
+ _tcsncpy(buf, _A2T(arCryptors[i]->cryptor->Name), SIZEOF(buf));
+ ListView_SetItemText(hwndList, iRow, 2, buf);
+ mir_sntprintf(buf,SIZEOF(buf),_T("%d.%d.%d.%d"), HIBYTE(HIWORD(arCryptors[i]->cryptor->Version)), LOBYTE(HIWORD(arCryptors[i]->cryptor->Version)), HIBYTE(LOWORD(arCryptors[i]->cryptor->Version)), LOBYTE(LOWORD(arCryptors[i]->cryptor->Version)));
+ ListView_SetItemText(hwndList, iRow, 3, buf);
+
+ if (uid == arCryptors[i]->cryptor->uid && p_Db->m_bEncoding)
+ ListView_SetCheckState(hwndList, i, 1);
+
+ item.mask = LVIF_IMAGE;
+ item.iItem = iRow;
+ item.iSubItem = 0;
+ item.iImage = ( CryptoEngine == arCryptors[i]->cryptor && p_Db->m_bEncoding ) ? 0 : 1;
+ ListView_SetItem( hwndList, &item );
+ }
+
+ ListView_SetColumnWidth(hwndList, 0, LVSCW_AUTOSIZE);
+ ListView_SetColumnWidth(hwndList, 1, LVSCW_AUTOSIZE);
+ ListView_SetColumnWidth(hwndList, 2, LVSCW_AUTOSIZE);
+ ListView_SetColumnWidth(hwndList, 3, LVSCW_AUTOSIZE);
+ return TRUE;
+
+ case WM_COMMAND:
+ if ( HIWORD(wParam) == STN_CLICKED ) {
+ switch (LOWORD(wParam)) {
+ case IDC_EMAIL:
+ case IDC_SITE:
+ {
+ char buf[512];
+ char * p = &buf[7];
+ lstrcpyA(buf,"mailto:");
+ if ( GetWindowTextA(GetDlgItem(hwndDlg, LOWORD(wParam)), p, SIZEOF(buf) - 7)) {
+ CallService(MS_UTILS_OPENURL,0,(LPARAM) (LOWORD(wParam) == IDC_EMAIL ? buf : p));
+ }
+ break;
+ } } }
+ break;
+
+ case WM_NOTIFY:
+ if ( hdr && hdr->hdr.code == LVN_ITEMCHANGED && IsWindowVisible(hdr->hdr.hwndFrom) && hdr->iItem != (-1)) {
+ iIndex = hdr->iItem;
+ if (hdr->uNewState & 0x2000){
+ for (i = 0; i < arCryptors.getCount(); i++) {
+ if (i != iIndex) ListView_SetCheckState(hwndList, i, 0);
+ }
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ }
+ if (hdr->uNewState & 0x1000){
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+ }
+ if (hdr->uNewState & LVIS_SELECTED){
+ SetDlgItemTextA(hwndDlg, IDC_AUTHOR, arCryptors[iIndex]->cryptor->Author);
+ {
+ TCHAR* info_t = mir_a2t((char*)(arCryptors[iIndex]->cryptor->Info));
+ SetDlgItemText(hwndDlg, IDC_INFO, TranslateTS(info_t));
+ mir_free(info_t);
+ }
+ SetDlgItemTextA(hwndDlg, IDC_SITE, arCryptors[iIndex]->cryptor->Site);
+ SetDlgItemTextA(hwndDlg, IDC_EMAIL, arCryptors[iIndex]->cryptor->Email);
+ SetDlgItemTextA(hwndDlg, IDC_ENC, arCryptors[iIndex]->cryptor->Name);
+ SetDlgItemInt(hwndDlg, IDC_UID, arCryptors[iIndex]->cryptor->uid, 0);
+ } else {
+ SetDlgItemTextA(hwndDlg, IDC_AUTHOR, "");
+ SetDlgItemTextA(hwndDlg, IDC_INFO, "");
+ SetDlgItemTextA(hwndDlg, IDC_SITE, "");
+ SetDlgItemTextA(hwndDlg, IDC_EMAIL, "");
+ SetDlgItemTextA(hwndDlg, IDC_ENC, "");
+ SetDlgItemTextA(hwndDlg, IDC_UID, "");
+ }
+
+ break;
+ }
+ if (((LPNMHDR)lParam)->code == PSN_APPLY ) {
+ int alg = -1;
+ for (i = 0; i < arCryptors.getCount(); i++) {
+ if (ListView_GetCheckState(hwndList, i)) {
+ alg = i;
+ break;
+ }
+ }
+
+ if (alg > -1){
+ if (!p_Db->m_bEncoding){
+ db_set_w(NULL, "SecureMMAP", "CryptoModule", arCryptors[alg]->cryptor->uid);
+ p_Db->EncryptDB();
+ }
+ else {
+ if (arCryptors[alg]->cryptor->uid != db_get_w(NULL, "SecureMMAP", "CryptoModule", -1)) {
+ db_set_w(NULL, "SecureMMAP", "CryptoModule", arCryptors[alg]->cryptor->uid);
+ p_Db->RecryptDB();
+ }
+ }
+ }
+ else if (p_Db->m_bEncoding)
+ p_Db->DecryptDB();
+
+ uid = db_get_w(NULL, "SecureMMAP", "CryptoModule", 0);
+
+ for (i = 0; i < arCryptors.getCount(); i++) {
+ if (uid == arCryptors[i]->cryptor->uid && p_Db->m_bEncoding)
+ ListView_SetCheckState(hwndList, i, 1);
+
+ item.mask = LVIF_IMAGE;
+ item.iItem = i;
+ item.iSubItem = 0;
+ item.iImage = ( CryptoEngine == arCryptors[i]->cryptor && p_Db->m_bEncoding ) ? 0 : 1;
+
+ ListView_SetItem( hwndList, &item );
+ }
+
+ return TRUE;
+
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+UINT oldLangID = 0;
+void LanguageChanged(HWND hDlg)
+{
+ UINT LangID = (UINT)GetKeyboardLayout(0);
+ char Lang[3] = {0};
+ if (LangID != oldLangID)
+ {
+ oldLangID = LangID;
+ GetLocaleInfoA(MAKELCID((LangID & 0xffffffff), SORT_DEFAULT), LOCALE_SABBREVLANGNAME, Lang, 2);
+ Lang[0] = toupper(Lang[0]);
+ Lang[1] = tolower(Lang[1]);
+ SetDlgItemTextA(hDlg, IDC_LANG, Lang);
+ }
+}
+
+extern BOOL wrongPass;
+
+INT_PTR CALLBACK DlgStdInProc(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam)
+{
+ TCHAR tszHeaderTxt[256];
+
+ switch(uMsg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hDlg);
+ {
+ HICON hIcon = LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON2));
+ SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_SETICON, ICON_SMALL, (LPARAM)hIcon);
+
+ DlgStdInProcParam *param = (DlgStdInProcParam*)lParam;
+ SetWindowLongPtr(hDlg, GWLP_USERDATA, (LPARAM)param->p_Db);
+
+ if (!wrongPass) {
+ mir_sntprintf(tszHeaderTxt, SIZEOF(tszHeaderTxt), _T("%s\n%s"), TranslateT("Please type in your password for"), param->pStr);
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), tszHeaderTxt);
+ }
+ else {
+ if (wrongPass > 2) {
+ HWND hwndCtrl = GetDlgItem(hDlg, IDC_USERPASS);
+ EnableWindow(hwndCtrl, FALSE);
+ hwndCtrl = GetDlgItem(hDlg, IDOK);
+ EnableWindow(hwndCtrl, FALSE);
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Too many errors!"));
+ }
+ else SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Password is not correct!"));
+ }
+ }
+ oldLangID = 0;
+ SetTimer(hDlg,1,200,NULL);
+ LanguageChanged(hDlg);
+ return TRUE;
+
+ case WM_CTLCOLORSTATIC:
+ if ((HWND)lParam == GetDlgItem(hDlg, IDC_LANG)) {
+ SetTextColor((HDC)wParam, GetSysColor(COLOR_HIGHLIGHTTEXT));
+ SetBkMode((HDC)wParam, TRANSPARENT);
+ return (BOOL)GetSysColorBrush(COLOR_HIGHLIGHT);
+ }
+ return FALSE;
+
+ case WM_COMMAND:
+ switch( LOWORD(wParam)) {
+ case IDCANCEL:
+ EndDialog(hDlg,IDCANCEL);
+ break;
+
+ case IDOK:
+ CDbxMmapSA *p_Db = (CDbxMmapSA*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
+ p_Db->encryptKeyLength = GetDlgItemTextA(hDlg, IDC_USERPASS, p_Db->encryptKey, 254);
+ EndDialog(hDlg,IDOK);
+ }
+ break;
+
+ case WM_TIMER:
+ LanguageChanged(hDlg);
+ return FALSE;
+
+ case WM_DESTROY:
+ KillTimer(hDlg, 1);
+ DestroyIcon((HICON)SendMessage(hDlg, WM_GETICON, ICON_SMALL, 0));
+ }
+
+ return FALSE;
+}
+
+INT_PTR CALLBACK DlgStdNewPass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam)
+{
+ switch(uMsg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hDlg);
+ SetWindowLongPtr(hDlg, GWLP_USERDATA, (LPARAM)lParam);
+
+ SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON2)));
+
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Please enter your new password"));
+
+ oldLangID = 0;
+ SetTimer(hDlg,1,200,NULL);
+ LanguageChanged(hDlg);
+ return TRUE;
+
+ case WM_CTLCOLORSTATIC:
+ if ((HWND)lParam == GetDlgItem(hDlg, IDC_LANG)) {
+ SetTextColor((HDC)wParam, GetSysColor(COLOR_HIGHLIGHTTEXT));
+ SetBkMode((HDC)wParam, TRANSPARENT);
+ return (BOOL)GetSysColorBrush(COLOR_HIGHLIGHT);
+ }
+ return FALSE;
+
+ case WM_COMMAND:
+ switch( LOWORD(wParam)) {
+ case IDCANCEL:
+ EndDialog(hDlg,IDCANCEL);
+ break;
+
+ case IDOK:
+ CDbxMmapSA *p_Db = (CDbxMmapSA*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
+ char pass1[255], pass2[255];
+ if (GetDlgItemTextA(hDlg, IDC_USERPASS1, pass1, 254) < 3){
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Password is too short!"));
+ SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+ SetDlgItemTextA(hDlg,IDC_USERPASS1,"");
+ SetDlgItemTextA(hDlg,IDC_USERPASS2,"");
+ }
+ else {
+ GetDlgItemTextA(hDlg, IDC_USERPASS2, pass2, 254);
+ if (!strcmp(pass1, pass2)) {
+ p_Db->encryptKeyLength = strlen(pass1);
+ strcpy(p_Db->encryptKey, pass1);
+ EndDialog(hDlg,IDOK);
+ }
+ else {
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Passwords do not match!"));
+ SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+ SetDlgItemTextA(hDlg,IDC_USERPASS1,"");
+ SetDlgItemTextA(hDlg,IDC_USERPASS2,"");
+ }
+ }
+ }
+ break;
+
+ case WM_TIMER:
+ LanguageChanged(hDlg);
+ return FALSE;
+
+ case WM_DESTROY:
+ KillTimer(hDlg, 1);
+ DestroyIcon((HICON)SendMessage(hDlg, WM_GETICON, ICON_SMALL, 0));
+ return FALSE;
+ }
+ return FALSE;
+}
+
+INT_PTR CALLBACK DlgChangePass(HWND hDlg, UINT uMsg,WPARAM wParam,LPARAM lParam)
+{
+ static char* newPass;
+ CDbxMmapSA *p_Db = (CDbxMmapSA*)GetWindowLongPtr(hDlg, GWLP_USERDATA);
+
+ switch(uMsg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hDlg);
+
+ SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_SETICON, 0, (LPARAM)LoadIcon(g_hInst, MAKEINTRESOURCE(IDI_ICON2)));
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Change password"));
+ {
+ DlgChangePassParam *param = (DlgChangePassParam*)lParam;
+ newPass = param->pszNewPass;
+ SetWindowLongPtr(hDlg, GWLP_USERDATA, (LPARAM)param->p_Db);
+ }
+ oldLangID = 0;
+ SetTimer(hDlg,1,200,NULL);
+ LanguageChanged(hDlg);
+ return TRUE;
+
+ case WM_CTLCOLORSTATIC:
+ if ((HWND)lParam == GetDlgItem(hDlg, IDC_LANG)) {
+ SetTextColor((HDC)wParam, GetSysColor(COLOR_HIGHLIGHTTEXT));
+ SetBkMode((HDC)wParam, TRANSPARENT);
+ return (BOOL)GetSysColorBrush(COLOR_HIGHLIGHT);
+ }
+
+ return FALSE;
+
+ case WM_COMMAND:
+ switch( LOWORD(wParam)) {
+ char pass1[255], pass2[255], oldpass[255];
+ case IDOK:
+ GetDlgItemTextA(hDlg, IDC_OLDPASS, oldpass, 254);
+ if (strcmp(oldpass, p_Db->encryptKey)) {
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Wrong password!"));
+ SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+ break;
+ }
+
+ if (GetDlgItemTextA(hDlg, IDC_NEWPASS1, pass1, 254) < 3){
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Password is too short!"));
+ SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+ }
+ else {
+ GetDlgItemTextA(hDlg, IDC_NEWPASS2, pass2, 254);
+ if (!strcmp(pass1, pass2)) {
+ strcpy(newPass, pass1);
+ EndDialog(hDlg,IDOK);
+ }
+ else {
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Passwords do not match!"));
+ SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+ }
+ }
+ break;
+
+ case IDCANCEL:
+ EndDialog(hDlg,IDCANCEL);
+ break;
+
+ case IDREMOVE:
+ GetDlgItemTextA(hDlg, IDC_OLDPASS, oldpass, 254);
+ if (strcmp(oldpass, p_Db->encryptKey)) {
+ SetWindowText(GetDlgItem(hDlg, IDC_HEADERBAR), TranslateT("Wrong password!"));
+ SendMessage(GetDlgItem(hDlg, IDC_HEADERBAR), WM_NCPAINT, 0, 0);
+ break;
+ }
+ EndDialog(hDlg, IDREMOVE);
+ }
+ break;
+
+ case WM_TIMER:
+ LanguageChanged(hDlg);
+ return FALSE;
+
+ case WM_DESTROY:
+ KillTimer(hDlg, 1);
+ DestroyIcon((HICON)SendMessage(hDlg, WM_GETICON, ICON_SMALL, 0));
+ return FALSE;
+ }
+ return FALSE;
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/init.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/init.cpp
new file mode 100644
index 0000000000..6b673fde1f
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/init.cpp
@@ -0,0 +1,152 @@
+/*
+
+Miranda IM: the free IM client for Microsoft* Windows*
+
+Copyright 2000-2003 Miranda ICQ/IM project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include "commonheaders.h"
+
+void InitSecurity(void);
+void UnloadSecurity(void);
+
+int hLangpack;
+
+HINSTANCE g_hInst = NULL;
+
+PLUGININFOEX pluginInfo = {
+ sizeof(PLUGININFOEX),
+ __PLUGIN_NAME,
+ PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
+ __DESCRIPTION,
+ __AUTHOR,
+ __AUTHOREMAIL,
+ __COPYRIGHT,
+ __AUTHORWEB,
+ UNICODE_AWARE | STATIC_PLUGIN,
+ // {28FF9B91-3E4D-4F1C-B47C-C641B037FF40}
+ {0x28ff9b91, 0x3e4d, 0x4f1c, {0xb4, 0x7c, 0xc6, 0x41, 0xb0, 0x37, 0xff, 0x40}}
+};
+
+LIST<CDbxMmapSA> g_Dbs(1, HandleKeySortT);
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+// returns 0 if the profile is created, EMKPRF*
+static int makeDatabase(const TCHAR *profile)
+{
+ std::auto_ptr<CDbxMmapSA> db( new CDbxMmapSA(profile));
+ if (db->Create() == ERROR_SUCCESS) {
+ db->CreateDbHeaders(dbSignatureNonSecured);
+ return 0;
+ }
+
+ return EMKPRF_CREATEFAILED;
+}
+
+// returns 0 if the given profile has a valid header
+static int grokHeader(const TCHAR *profile)
+{
+ std::auto_ptr<CDbxMmapSA> db( new CDbxMmapSA(profile));
+ if (db->Load(true) != ERROR_SUCCESS)
+ return EGROKPRF_CANTREAD;
+
+ return db->CheckDbHeaders();
+}
+
+// returns 0 if all the APIs are injected otherwise, 1
+static MIDatabase* LoadDatabase(const TCHAR *profile)
+{
+ // set the memory, lists & UTF8 manager
+ mir_getLP( &pluginInfo );
+
+ std::auto_ptr<CDbxMmapSA> db( new CDbxMmapSA(profile));
+ if (db->Load(false) != ERROR_SUCCESS)
+ return NULL;
+
+ g_Dbs.insert(db.get());
+ return db.release();
+}
+
+static int UnloadDatabase(MIDatabase* db)
+{
+ g_Dbs.remove((CDbxMmapSA*)db);
+ delete (CDbxMmapSA*)db;
+ return 0;
+}
+
+MIDatabaseChecker* CheckDb(const TCHAR* profile, int *error)
+{
+ std::auto_ptr<CDbxMmapSA> db( new CDbxMmapSA(profile));
+ if (db->Load(true) != ERROR_SUCCESS) {
+ *error = EGROKPRF_CANTREAD;
+ return NULL;
+ }
+
+ int chk = db->CheckDbHeaders();
+ if (chk != ERROR_SUCCESS) {
+ *error = chk;
+ return NULL;
+ }
+
+ *error = 0;
+ return db.release();
+}
+
+static DATABASELINK dblink =
+{
+ sizeof(DATABASELINK),
+ "dbx_mmap_sa",
+ _T("dbx secure mmap driver"),
+ makeDatabase,
+ grokHeader,
+ LoadDatabase,
+ UnloadDatabase,
+ CheckDb
+};
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+extern "C" __declspec(dllexport) PLUGININFOEX * MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+ return &pluginInfo;
+}
+
+extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_DATABASE, MIID_LAST};
+
+extern "C" __declspec(dllexport) int Load(void)
+{
+ InitSecurity();
+
+ RegisterDatabasePlugin(&dblink);
+ return 0;
+}
+
+extern "C" __declspec(dllexport) int Unload(void)
+{
+ g_Dbs.destroy();
+ UnloadSecurity();
+ return 0;
+}
+
+BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID reserved)
+{
+ g_hInst = hInstDLL;
+ return TRUE;
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/options.h b/plugins/!Deprecated/Dbx_mmap_SA/src/options.h
new file mode 100644
index 0000000000..efabf3eba5
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/options.h
@@ -0,0 +1,38 @@
+/*
+
+Miranda IM: the free IM client for Microsoft* Windows*
+
+Copyright 2000-2003 Miranda ICQ/IM project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <m_clist.h>
+#include <m_options.h>
+#include "resource.h"
+
+typedef enum { BT_DISABLED = 0, BT_START = 1, BT_EXIT = 2, BT_PERIODIC = 4} BackupType;
+typedef enum { PT_DAYS, PT_HOURS, PT_MINUTES} PeriodType;
+
+typedef struct Options_tag {
+ int backup_types;
+ unsigned int period;
+ PeriodType period_type;
+ char folder[MAX_PATH];
+ unsigned int num_backups;
+ BOOL disable_progress;
+} Options; \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/resource.h b/plugins/!Deprecated/Dbx_mmap_SA/src/resource.h
new file mode 100644
index 0000000000..7b13f6957d
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/resource.h
@@ -0,0 +1,54 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by db3x_mmap.rc
+//
+#define IDC_NOTOALL 3
+#define IDREMOVE 3
+#define IDD_OPTIONS 101
+#define IDD_INSTALLINI 235
+#define IDD_WARNINICHANGE 236
+#define IDD_INIIMPORTDONE 237
+#define IDD_LOGIN 269
+#define IDD_NEWPASS 270
+#define IDI_ICON2 271
+#define IDI_ICON3 272
+#define IDC_LANG 274
+#define IDD_CHANGEPASS 275
+#define IDC_ININAME 1333
+#define IDC_VIEWINI 1334
+#define IDC_SECURITYINFO 1335
+#define IDC_SETTINGNAME 1336
+#define IDC_NEWVALUE 1337
+#define IDC_WARNNOMORE 1338
+#define IDC_DELETE 1339
+#define IDC_RECYCLE 1340
+#define IDC_NEWNAME 1341
+#define IDC_MOVE 1342
+#define IDC_LEAVE 1343
+#define IDC_HEADERBAR 1657
+#define IDC_USERPASS 1658
+#define IDC_ENC 1659
+#define IDC_USERPASS1 1659
+#define IDC_OLDPASS 1660
+#define IDC_USERPASS2 1661
+#define IDC_NEWPASSINFO 1679
+#define IDC_MODULES 1680
+#define IDC_NEWPASSINFO2 1680
+#define IDC_INFO 1682
+#define IDC_AUTHOR 1683
+#define IDC_NEWPASS1 1683
+#define IDC_SITE 1684
+#define IDC_NEWPASS2 1684
+#define IDC_EMAIL 1685
+#define IDC_UID 1686
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 276
+#define _APS_NEXT_COMMAND_VALUE 40018
+#define _APS_NEXT_CONTROL_VALUE 1685
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/security.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/security.cpp
new file mode 100644
index 0000000000..6d41787d24
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/security.cpp
@@ -0,0 +1,358 @@
+// (C) Artem Shpynov aka FYR and Igonin Vitaliy aka chaos.persei, 2007 - 2008
+
+#include "commonheaders.h"
+
+int wrongPass = 0;
+void* key;
+
+Cryptor* CryptoEngine = NULL;
+
+LIST<CryptoModule> arCryptors(1);
+
+void zero_fill(BYTE * pBuf, size_t bufSize)
+{
+ size_t i;
+ for (i = 0; i < bufSize; i++)
+ pBuf[i] = 0;
+}
+
+void InitSecurity()
+{
+ Cryptor* (__stdcall *GetCryptor)();
+
+ TCHAR tszPath[MAX_PATH];
+ GetModuleFileName(g_hInst, tszPath, SIZEOF(tszPath));
+ TCHAR *p = _tcsrchr(tszPath, '\\')+1; _tcscpy(p, _T("cryptors\\*.dll"));
+
+ WIN32_FIND_DATA fd;
+ HANDLE hFile = FindFirstFile(tszPath, &fd);
+ while (hFile != INVALID_HANDLE_VALUE) {
+ mir_sntprintf(p, MAX_PATH - (p-tszPath), _T("cryptors\\%s"), fd.cFileName);
+ HMODULE hLib = LoadLibrary(tszPath);
+ if (hLib){
+ GetCryptor = (Cryptor* (__stdcall *)()) GetProcAddress(hLib, "GetCryptor");
+ if (GetCryptor){
+ CryptoModule* newItem = (CryptoModule*) malloc(sizeof(CryptoModule));
+ newItem->cryptor = GetCryptor();
+ _tcsncpy(newItem->dllname, fd.cFileName, MAX_PATH);
+ newItem->hLib = hLib;
+ arCryptors.insert(newItem);
+ }
+ else FreeLibrary(hLib);
+ }
+ if (!FindNextFile(hFile, &fd))
+ break;
+ }
+}
+
+void UnloadSecurity()
+{
+ if (CryptoEngine)
+ CryptoEngine->FreeKey(key);
+
+ for (int i = 0; i < arCryptors.getCount(); i++) {
+ FreeLibrary(arCryptors[i]->hLib);
+ free(arCryptors[i]);
+ }
+ arCryptors.destroy();
+}
+
+void CDbxMmapSA::EncoderInit()
+{
+ if (!m_bEncoding) return;
+
+ encryptKey[encryptKeyLength] = 0;
+ key = CryptoEngine->GenerateKey(encryptKey);
+}
+
+void CDbxMmapSA::EncodeCopyMemory(void * dst, void * src, size_t size )
+{
+ memcpy(dst, src, size);
+
+ if (m_bEncoding)
+ CryptoEngine->EncryptMem((BYTE *)dst, (int)size, key);
+}
+
+void CDbxMmapSA::DecodeCopyMemory(void * dst, void * src, size_t size )
+{
+ memcpy(dst, src, size);
+
+ if (m_bEncoding)
+ CryptoEngine->DecryptMem((BYTE *)dst, (int)size, key);
+}
+
+void CDbxMmapSA::EncodeDBWrite(DWORD ofs, void *src, int size)
+{
+ if (m_bEncoding) {
+ BYTE *buf = (BYTE*)GlobalAlloc(GPTR, sizeof(BYTE)*size);
+ EncodeCopyMemory(buf, src, size);
+ DBWrite(ofs, buf, (int)size);
+ GlobalFree(buf);
+ }
+ else DBWrite(ofs, src, (int)size);
+}
+
+void CDbxMmapSA::DecodeDBWrite(DWORD ofs, void *src, int size)
+{
+ if (m_bEncoding) {
+ BYTE *buf = (BYTE*)GlobalAlloc(GPTR, sizeof(BYTE)*size);
+ DecodeCopyMemory(buf, src, size);
+ DBWrite(ofs, buf, (int)size);
+ GlobalFree(buf);
+ }
+ else DBWrite(ofs, src, (int)size);
+}
+
+int bCheckingPass = 0;
+
+int CDbxMmapSA::CheckPassword(WORD checkWord, TCHAR *szDBName)
+{
+ if (bCheckingPass)
+ return 0;
+
+ bCheckingPass = 1;
+
+ int Found = 0;
+ for (int i = 0; i < arCryptors.getCount(); i++) {
+ if ( HIWORD(m_dbHeader.version) == arCryptors[i]->cryptor->uid){
+ CryptoEngine = arCryptors[i]->cryptor;
+ Found = 1;
+ break;
+ }
+ }
+ if (!Found){
+ MessageBox(0, TranslateT("Sorry, but your database encrypted with unknown module"), TranslateT("Error"), MB_OK | MB_ICONERROR);
+ bCheckingPass = 0;
+ return 0;
+ }
+
+ while(1) {
+ DlgStdInProcParam param = { this, szDBName };
+ int res = DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_LOGIN), NULL, DlgStdInProc, (LPARAM)&param);
+ if (res == IDCANCEL) {
+ wrongPass = 0;
+ bCheckingPass = 0;
+ return 0;
+ }
+ if (encryptKeyLength < 1)
+ continue;
+
+ EncoderInit();
+
+ WORD ver;
+ DecodeCopyMemory(&ver, &checkWord, sizeof(checkWord));
+ if (ver == 0x5195) {
+ wrongPass = 0;
+ bCheckingPass = 0;
+ return 1;
+ }
+ wrongPass++;
+ }
+
+ bCheckingPass = 0;
+}
+
+int SelectEncoder()
+{
+ if (arCryptors.getCount() == 0){
+ MessageBox(0, TranslateT("Crypto modules not found"), TranslateT("Error"), MB_OK | MB_ICONERROR);
+ return 1;
+ }
+
+ WORD uid = db_get_w(NULL, "SecureMMAP", "CryptoModule", 0);
+ if (uid != 0) {
+ for (int i = 0; i < arCryptors.getCount(); i++) {
+ if (arCryptors[i]->cryptor->uid == uid) {
+ CryptoEngine = arCryptors[i]->cryptor;
+ return 0;
+ }
+ }
+ }
+
+ db_set_w(NULL, "SecureMMAP", "CryptoModule", arCryptors[0]->cryptor->uid);
+ CryptoEngine = arCryptors[0]->cryptor;
+ return 0;
+}
+
+void CDbxMmapSA::EncodeAll()
+{
+ for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
+ EncodeContactEvents(hContact);
+ EncodeContactSettings(hContact);
+ }
+
+ EncodeContactEvents(NULL);
+ EncodeContactSettings(NULL);
+}
+
+void CDbxMmapSA::DecodeAll()
+{
+ for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) {
+ DecodeContactEvents(hContact);
+ DecodeContactSettings(hContact);
+ }
+ DecodeContactEvents(NULL);
+ DecodeContactSettings(NULL);
+}
+
+void CDbxMmapSA::WritePlainHeader()
+{
+ DWORD bytesWritten;
+
+ memcpy(m_dbHeader.signature, &dbSignatureNonSecured, sizeof(m_dbHeader.signature));
+ SetFilePointer(m_hDbFile,0,NULL,FILE_BEGIN);
+ WriteFile(m_hDbFile,m_dbHeader.signature,sizeof(m_dbHeader.signature),&bytesWritten,NULL);
+
+ m_dbHeader.version = MAKELONG(0x0700, 0x0000); //no encryption
+ WriteFile(m_hDbFile,&m_dbHeader.version, sizeof(m_dbHeader.version),&bytesWritten,NULL);
+}
+
+void CDbxMmapSA::WriteCryptHeader()
+{
+ DWORD bytesWritten;
+
+ memcpy(m_dbHeader.signature, &dbSignatureSecured, sizeof(m_dbHeader.signature));
+ SetFilePointer(m_hDbFile,0,NULL,FILE_BEGIN);
+ WriteFile(m_hDbFile,m_dbHeader.signature,sizeof(m_dbHeader.signature),&bytesWritten,NULL);
+
+ WORD checkWord = 0x5195, cryptWord;
+ EncodeCopyMemory(&cryptWord, &checkWord, sizeof(checkWord));
+ m_dbHeader.version = MAKELONG(cryptWord, CryptoEngine->uid);
+ WriteFile(m_hDbFile,&m_dbHeader.version, sizeof(m_dbHeader.version),&bytesWritten,NULL);
+}
+
+void CDbxMmapSA::EncryptDB()
+{
+ int action = 0;
+ if (bEncProcess)
+ return;
+
+ if (memcmp(m_dbHeader.signature, &dbSignatureSecured, sizeof(m_dbHeader.signature)) == 0){
+ MessageBox(0, TranslateT("DB is already secured!"), TranslateT("Error"), MB_OK | MB_ICONERROR);
+ return;
+ }
+
+ if (SelectEncoder())
+ return;
+
+ bEncProcess = 1;
+
+ action = DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_NEWPASS), NULL, DlgStdNewPass, (LPARAM)this);
+ if (action != IDOK || !strlen(encryptKey)) {
+ bEncProcess = 0;
+ db_set_b(NULL, "SecureMMAP", "CryptoModule", 0);
+ return;
+ }
+
+ EnterCriticalSection(&m_csDbAccess);
+
+ m_bEncoding = 1;
+ EncoderInit();
+
+ EncodeAll();
+
+ LeaveCriticalSection(&m_csDbAccess);
+
+ WriteCryptHeader();
+
+ xModifyMenu(hSetPwdMenu, 0, LPGENT("Change Password"), 0);
+
+ bEncProcess = 0;
+}
+
+void CDbxMmapSA::DecryptDB()
+{
+ char oldKey[255];
+ strcpy(oldKey, encryptKey);
+
+ if ( !CheckPassword( LOWORD(m_dbHeader.version), TranslateT("current database"))) {
+ strcpy(encryptKey, oldKey);
+ encryptKeyLength = strlen(oldKey);
+ return;
+ }
+
+ WritePlainHeader();
+
+ EnterCriticalSection(&m_csDbAccess);
+ DecodeAll();
+ LeaveCriticalSection(&m_csDbAccess);
+
+ m_bEncoding = 0;
+
+ zero_fill((BYTE *)encryptKey, sizeof encryptKey);
+
+ xModifyMenu(hSetPwdMenu, 0, LPGENT("Set Password"), 0);
+
+ db_set_w(NULL, "SecureMMAP", "CryptoModule", 0);
+
+ CryptoEngine->FreeKey(key);
+
+ CryptoEngine = NULL;
+}
+
+void CDbxMmapSA::RecryptDB()
+{
+ EnterCriticalSection(&m_csDbAccess);
+
+ DecodeAll();
+
+ CryptoEngine->FreeKey(key);
+
+ SelectEncoder();
+
+ m_bEncoding = 1;
+
+ EncoderInit();
+
+ EncodeAll();
+
+ WriteCryptHeader();
+
+ LeaveCriticalSection(&m_csDbAccess);
+}
+
+void CDbxMmapSA::ChangePwd()
+{
+ char newpass[255] = {0};
+
+ DlgChangePassParam param = { this, newpass };
+ int action = DialogBoxParam(g_hInst, MAKEINTRESOURCE(IDD_CHANGEPASS), NULL, DlgChangePass, (LPARAM)&param);
+
+ if (action == IDCANCEL || (action == IDOK && !strlen(newpass)))
+ return;
+
+ EnterCriticalSection(&m_csDbAccess);
+
+ DecodeAll();
+
+ CryptoEngine->FreeKey(key);
+
+ if (action == IDREMOVE){
+ WritePlainHeader();
+
+ m_bEncoding = 0;
+ CryptoEngine = NULL;
+ db_set_w(NULL, "SecureMMAP", "CryptoModule", 0);
+
+ zero_fill((BYTE *)encryptKey, sizeof encryptKey);
+
+ xModifyMenu(hSetPwdMenu, 0, LPGENT("Set Password"), 0);
+ }
+
+ if (action == IDOK){
+ strcpy(encryptKey, newpass);
+ encryptKeyLength = strlen(newpass);
+
+ m_bEncoding = 1;
+
+ EncoderInit();
+
+ EncodeAll();
+
+ WriteCryptHeader();
+ }
+
+ zero_fill((BYTE *)newpass, sizeof newpass);
+
+ LeaveCriticalSection(&m_csDbAccess);
+}
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/stdafx.cpp b/plugins/!Deprecated/Dbx_mmap_SA/src/stdafx.cpp
new file mode 100644
index 0000000000..e7e41dae3c
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/stdafx.cpp
@@ -0,0 +1,18 @@
+/*
+Copyright (C) 2012-13 Miranda NG Project (http://miranda-ng.org)
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation version 2
+of the License.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "commonheaders.h" \ No newline at end of file
diff --git a/plugins/!Deprecated/Dbx_mmap_SA/src/version.h b/plugins/!Deprecated/Dbx_mmap_SA/src/version.h
new file mode 100644
index 0000000000..c77ad2d7ed
--- /dev/null
+++ b/plugins/!Deprecated/Dbx_mmap_SA/src/version.h
@@ -0,0 +1,14 @@
+#define __MAJOR_VERSION 0
+#define __MINOR_VERSION 7
+#define __RELEASE_NUM 5
+#define __BUILD_NUM 4
+
+#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
+
+#define __PLUGIN_NAME "Miranda NG mmap secure database driver"
+#define __FILENAME "Dbx_mmap_SA.dll"
+#define __DESCRIPTION "Provides Miranda database support: global settings, contacts, history, settings per contact. Enhanced modification with Encryption support."
+#define __AUTHOR "Miranda-IM project, modification by FYR and chaos.persei, nullbie, Billy_Bons"
+#define __AUTHOREMAIL "chaos.persei@gmail.com; ashpynov@gmail.com; bio@msx.ru; ghazan@miranda.im"
+#define __AUTHORWEB "http://miranda-ng.org/p/Dbx_mmap_SA/"
+#define __COPYRIGHT "© 2000-2011 Miranda IM project, 2012 Miranda NG project FYR, chaos.persei, induction, nullbie"