⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lm2.cpp

📁 软件加密精灵
💻 CPP
字号:

/************************************************************
 *                                                          *
 *   Lock  Manage 6.0                                       *
 *   Copyright (c) 1996 by Software International           *
 *                                                          *
 *   Lock  Manage  source file LM2.CPP                      *
 ************************************************************/


#define Uses_TApplication
#define Uses_TMenuBar
#define Uses_TRect
#define Uses_TSubMenu
#define Uses_TKeys
#define Uses_TMenuItem
#define Uses_TStatusLine
#define Uses_TStatusItem
#define Uses_TStatusDef
#define Uses_TPoint
#define Uses_TEditor
#define Uses_MsgBox
#define Uses_TFileDialog
#define Uses_TDeskTop

#include <tv.h>

#include "lm.h"

#include <stdarg.h>
#include <strstrea.h>
#include <iomanip.h>
extern int chinese;
extern char title[];
extern char shellmsg[];
extern char openfile[];
extern char inputword[];
extern char lockfile1[];
extern char lockfile2[];
extern char lockdisk1[];
extern char lockdisk2[];
extern char lockdisk3[];
extern char lockdisk4[];
extern char lockdisk5[];
extern char lockdisk6[];

TMenuBar *App::initMenuBar( TRect r )
{
   if (chinese)  {
      strcpy (title,"加密管理员");
      strcpy (openfile,"打开文件");
      strcpy (shellmsg,"键入 EXIT 重新返回 LOCK MANEGE 5.0 ...");
      strcpy (inputword,"请输入密码(至少五个字节)");
      strcpy (lockfile1,"不能加密此文件,按任意键退出 .");
      strcpy (lockfile2,"文件加密成功,按任意键继续 .");
      strcpy (lockdisk1,"不能加锁硬盘,按任意键退出 .");
      strcpy (lockdisk2,"硬盘加锁成功,按任意键继续 .");
      strcpy (lockdisk3,"不能加锁软盘,按任意键退出 .");
      strcpy (lockdisk4,"软盘加锁成功,按任意键继续 .");
      strcpy (lockdisk5," 请将恢复程序保存于软盘以便恢复\n \n          按任意键确认");
      strcpy (lockdisk6," 请将欲加密磁盘插于A:驱动器\n \n          按任意键确认");

      TSubMenu& sub1 = *new TSubMenu( "文件 [~F~]", kbAltF ) +
	*new TMenuItem( "阅览文件 [~F~]", cmOpen, kbF3 , hcNoContext, "F3" ) +
	     newLine() +
	*new TMenuItem( "EXE文件口令加锁 [~E~] ...", cmOpenexe, kbNoKey ) +
	*new TMenuItem( "COM文件口令加锁 [~C~] ...", cmOpencom, kbNoKey ) +
	*new TMenuItem( "批处理文件加密 [~B~] ...", cmOpenbat, kbNoKey ) +
	*new TMenuItem( "数据库文件加密 [~A~] ...", cmOpenprg, kbNoKey ) +
	     newLine() +
	*new TMenuItem( "改变路径 [~C~] ...", cmChangeDrct, kbNoKey ) +
	*new TMenuItem( "驻留退出 [~D~]", cmDosShell, kbNoKey ) +
	*new TMenuItem( "退出 [~X~]", cmQuit, kbAltX, hcNoContext, "Alt-X" );

      TSubMenu& sub2 = *new TSubMenu( "磁盘 [~D~]", kbAltD ) +
	*new TMenuItem( "硬磁盘加锁 [~C~]", cmHDdiskC, kbNoKey ) +
	*new TMenuItem( "硬磁盘分区加锁 [~D~]", cmHDdiskD, kbNoKey ) +
	     newLine() +
	*new TMenuItem( "高密软磁盘加锁 [~H~]", cmDiskHD, kbNoKey ) +
	*new TMenuItem( "低密软磁盘加锁 [~F~]", cmDiskDD, kbNoKey ) ;

      TSubMenu& sub3 = *new TSubMenu( "反复制 [~P~]", kbAltP ) +
	*new TMenuItem( "标记硬磁盘指纹 [~M~]", cmHDmark, kbNoKey ) +
	*new TMenuItem( "硬磁盘反拷贝 [~A~] ...", cmHDpro, kbNoKey ) +
	     newLine() +
	*new TMenuItem( "标记高密磁盘软指纹 [~H~]", cmMarkHD, kbNoKey ) +
	*new TMenuItem( "高密磁盘反拷贝 [~F~] ...", cmProHD, kbNoKey ) +
	*new TMenuItem( "标记低密磁盘软指纹 [~D~]", cmMarkDD, kbNoKey ) +
	*new TMenuItem( "低密磁盘反拷贝 [~L~] ...", cmProDD, kbNoKey ) +
	     newLine() +
	*new TMenuItem( "反动态跟踪工具 [~T~] ...", cmDistrace, kbNoKey ) +
	*new TMenuItem( "反静态反汇编分析工具 [~U~] ...", cmDisunasm, kbNoKey ) ;

      TSubMenu& sub4 = *new TSubMenu( "帮助 [~H~]", kbAltH ) +
	*new TMenuItem( "关于加密管理器 [~A~]", cmAbout, kbF1, hcNoContext,"F1" ) +
	*new TMenuItem( "关闭窗口 [~C~]", cmClose, kbAltF3, hcNoContext, "Alt-F3" );

    r.b.y = r.a.y+1;
    return new TMenuBar( r, sub1 + sub2 + sub3 + sub4 );
    }
    else  {
      strcpy (title,"Lock Manage");
      strcpy (openfile,"Open file");
      strcpy (shellmsg,"Tpte EXIT to return to LOCK MANEGE 5.0 ...");
      strcpy (inputword,"Input the password (at lease 5 word)");
      strcpy (lockfile1,"     File lock failure\n \n     Press any key to return .");
      strcpy (lockfile2,"     File lock successfully\n \n     Press any key to continue .");
      strcpy (lockdisk1,"     Hard disk lock failure\n \n     Press any key to return .");
      strcpy (lockdisk2,"     Hard disk lock successfully\n \n     Press any key to continue .");
      strcpy (lockdisk3,"     Floppy disk lock failure\n \n     Press any key to return .");
      strcpy (lockdisk4,"     Floppy disk lock successfully\n \n     Press any key to continue .");
      strcpy (lockdisk5,"   Please keep the rescue disk\n \n   Press any key to continue");
      strcpy (lockdisk6,"   Please insert disk in drive A:\n \n   Press any key to continue");

      TSubMenu& sub1 = *new TSubMenu( "~F~ile", kbAltF ) +
	*new TMenuItem( "~F~ile View", cmOpen, kbF3 , hcNoContext, "F3" ) +
	     newLine() +
	*new TMenuItem( "~E~XE File Lock ...", cmOpenexe, kbNoKey ) +
	*new TMenuItem( "~C~OM File Lock ...", cmOpencom, kbNoKey ) +
	*new TMenuItem( "~B~atch File Lock ...", cmOpenbat, kbNoKey ) +
	*new TMenuItem( "D~a~ta Base File Lock ...", cmOpenprg, kbNoKey ) +
	     newLine() +
	*new TMenuItem( "~C~hange Dir...", cmChangeDrct, kbNoKey ) +
	*new TMenuItem( "~D~OS Shell", cmDosShell, kbNoKey ) +
	*new TMenuItem( "E~x~it", cmQuit, kbAltX, hcNoContext, "Alt-X" );

      TSubMenu& sub2 = *new TSubMenu( "~D~isk", kbAltD ) +
	*new TMenuItem( "Hard Disk ~C~ Lock", cmHDdiskC, kbNoKey ) +
	*new TMenuItem( "hard Disk ~D~ Lock", cmHDdiskD, kbNoKey ) +
	     newLine() +
	*new TMenuItem( "Lock Floddy Disk ~H~D", cmDiskHD, kbNoKey ) +
	*new TMenuItem( "Lock ~F~loppy Disk DD", cmDiskDD, kbNoKey ) ;

      TSubMenu& sub3 = *new TSubMenu( "~P~roCopy", kbAltP ) +
	*new TMenuItem( "~M~ark Hard Disk", cmHDmark, kbNoKey ) +
	*new TMenuItem( "H~a~rd Disk ProCopy ...", cmHDpro, kbNoKey ) +
	     newLine() +
	*new TMenuItem( "Mark Floppy Disk ~H~D", cmMarkHD, kbNoKey ) +
	*new TMenuItem( "ProCopy ~F~loppy Disk HD ...", cmProHD, kbNoKey ) +
	*new TMenuItem( "Mark Floppy Disk ~D~D", cmMarkDD, kbNoKey ) +
	*new TMenuItem( "ProCopy F~l~oppy Disk DD ...", cmProDD, kbNoKey ) +
	     newLine() +
	*new TMenuItem( "S~t~atic Trace Aniliazed ...", cmDistrace, kbNoKey ) +
	*new TMenuItem( "Static ~A~ssembles Aniliazed ...", cmDisunasm, kbNoKey ) ;

      TSubMenu& sub4 = *new TSubMenu( "~H~elp", kbAltH ) +
	*new TMenuItem( "~A~bout", cmAbout, kbF1, hcNoContext, "F1") +
	*new TMenuItem( "~C~lose", cmClose, kbAltF3, hcNoContext, "Alt-F3" );

    r.b.y = r.a.y+1;
    return new TMenuBar( r, sub1 + sub2 + sub3 + sub4 );
    }
}

TStatusLine *App::initStatusLine( TRect r )
{
    r.a.y = r.b.y-1;
    if (chinese) {
    return new TStatusLine( r,
	*new TStatusDef( 0, 0xFFFF ) +
	    *new TStatusItem("~Alt-X~ 退出系统", kbAltX, cmQuit ) +
	    *new TStatusItem( "~F3~ 打开", kbF3, cmOpen ) +
	    *new TStatusItem( "~Alt-F3~ 关闭", kbAltF3, cmClose ) +
	    *new TStatusItem( "~F10~ 主菜单", kbF10, cmMenu ) +
	    *new TStatusItem( 0, kbCtrlF5, cmResize )
	    );
    }
    else {
    return new TStatusLine( r,
	*new TStatusDef( 0, 0xFFFF ) +
	    *new TStatusItem("~Alt-X~ Exit", kbF2, cmSave ) +
	    *new TStatusItem( "~F3~ Open", kbF3, cmOpen ) +
	    *new TStatusItem( "~Alt-F3~ Close", kbAltF3, cmClose ) +
	    *new TStatusItem( "~F10~ Menu", kbF10, cmMenu ) +
	    *new TStatusItem( 0, kbCtrlF5, cmResize )
	    );
   }
}

void App::outOfMemory()
{
    messageBox("Not enough memory for this operation.", mfError | mfOKButton );
}

typedef char *_charPtr;
typedef TPoint *PPoint;

#pragma warn -rvl

ushort doEditDialog( int dialog, ... )
{
    va_list arg;

    char buf[80];
    ostrstream os( buf, sizeof( buf ) );
    switch( dialog )
	{
	case edOutOfMemory:
	    return messageBox( "Not enough memory for this operation",
			       mfError | mfOKButton );
	case edReadError:
	    {
	    va_start( arg, dialog );
	    os << "Error reading file " << va_arg( arg, _charPtr )
	       << "." << ends;
	    va_end( arg );
	    return messageBox( buf, mfError | mfOKButton );
	    }
	case edWriteError:
	    {
	    va_start( arg, dialog );
	    os << "Error writing file " << va_arg( arg,_charPtr )
	       << "." << ends;
	    va_end( arg );
	    return messageBox( buf, mfError | mfOKButton );
	    }
	case edCreateError:
	    {
	    va_start( arg, dialog );
	    os << "Error creating file " << va_arg( arg, _charPtr )
	       << "." << ends;
	    va_end( arg );
	    return messageBox( buf, mfError | mfOKButton );
	    }
	case edSaveUntitled:
	    return messageBox( "Save untitled file?",
			       mfInformation | mfYesNoCancel );


	}
}

#pragma warn .rvl


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -