找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8703|回复: 20

[他山之石] LISP解密工具

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-4-13 12:38:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
有很多LSP文件是加密过的,文本文件打开会看到protectd lisp, 附件的工具就是批量解密这个到能看懂的源码的。

lsp解密工具.rar

393.3 KB, 阅读权限: 20, 下载次数: 71, 下载积分: D豆 -1 , 活跃度 1

售价: 10 D豆  [记录]

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 271个

财富等级: 日进斗金

发表于 2018-5-10 22:18:49 | 显示全部楼层
发点小感慨:
    论坛,真实多是自我表现和眩技的地方。
    晓东CAD高手很多,但过于封闭和保守,人气不旺。
    开放,开源,才能相互学习;也更有乐趣,更好玩!

点评

赞同。  详情 回复 发表于 2018-5-10 22:29
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2016-4-20 22:14:14 | 显示全部楼层
这种过时的工具,版大还发出来?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-7-6 16:21:58 | 显示全部楼层
今天 要试一下这个程序,看看好不好使:lol
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 271个

财富等级: 日进斗金

发表于 2018-5-10 21:00:11 | 显示全部楼层
LISP源文件加密,在VLisp以前,比较常用。现在可以生成可编译程序,已经不多见了。
经常学习newer大师,真心膜拜! 为好玩,也用 C写了个LISP加密/解密程序,大家试试看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 271个

财富等级: 日进斗金

发表于 2018-5-10 21:14:15 | 显示全部楼层
不知道怎么加附件?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 271个

财富等级: 日进斗金

发表于 2018-5-10 21:19:42 | 显示全部楼层
这样加附件,可以么?

LISP加密解密程序.zip

12.59 KB, 下载次数: 173, 下载积分: D豆 -1 , 活跃度 1

评分

参与人数 1D豆 +5 收起 理由
newer + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-5-10 21:20:04 | 显示全部楼层
w15994259099 发表于 2018-5-10 21:14
不知道怎么加附件?

发帖界面,有个图标,点它,选上硬盘上的文件上传就行了。

搜狗截图20180510212319.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5060个

财富等级: 富甲天下

发表于 2018-5-10 21:22:16 来自手机 | 显示全部楼层
发个fas解密程序吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 271个

财富等级: 日进斗金

发表于 2018-5-10 21:23:39 | 显示全部楼层
这是小测试文件

可爱小青蛙.lsp

6.71 KB, 下载次数: 12, 下载积分: D豆 -1 , 活跃度 1

可爱小青蛙_pro.lsp

6.6 KB, 下载次数: 10, 下载积分: D豆 -1 , 活跃度 1

可爱小青蛙_res.lsp

6.72 KB, 下载次数: 7, 下载积分: D豆 -1 , 活跃度 1

点评

可否把C源码贴上来,加入到API里面,谢谢!  详情 回复 发表于 2018-5-10 21:26
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

 楼主| 发表于 2018-5-10 21:26:40 | 显示全部楼层

可否把C源码贴上来,加入到API里面,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 271个

财富等级: 日进斗金

发表于 2018-5-10 21:27:23 | 显示全部楼层
是exe文件,可以在autocad以外运行;也可以在cad中,作为外部程序调用:
(startapp "D:\\ ??\\LISP加密解密程序.exe")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 271个

财富等级: 日进斗金

发表于 2018-5-10 21:48:47 | 显示全部楼层
//1 lsp文件加密:可以在cad中运行,但不可读
bool Protected_Lisp_1()
{
    char fin[1000];
        char fou[1000];
        // 选择的文件名称  
        CString lv_strFileName = _T("");  
        // 设置文件过滤格式  
        CString lv_strFilterLSP = _T("lsp文件(*.lsp)|*.lsp|");  
        CString lv_strFileFilter = lv_strFilterLSP;  
        // 设置文件后缀名称  
        CString lv_strName[] = {"", "lsp",""};  
        CString lv_strExtension = _T("");  

    CString m_strFilePathName;
    CString m_strFileName;
    CString m_strExtName;
        // 打开保存文件对话框  
        CFileDialog lv_FileOpenDlg(FALSE, NULL, NULL, OFN_HIDEREADONLY, lv_strFileFilter);  
    lv_FileOpenDlg.m_ofn.lpstrTitle   =   "【LISP加密】 选择LISP源文本文件:";

        if (IDOK != lv_FileOpenDlg.DoModal())  
        {  
                return false;  
        }  
        else  
        {  
    //  CString CFileDialog::GetPathName :得到完整文件名,包括目录名和扩展名如:c:/test/test1.txt  
    //  CString CFileDialog::GetFileName :得到完整文件名,包括扩展名如:test1.txt  
    //  CString CFileDialog::GetFileExt  :得到完整文件扩展名,如:txt  
    //  CString CFileDialog::GetFileTitle:得到完整文件名,不包括目录名和扩展名如:test1  
        m_strFilePathName = lv_FileOpenDlg.GetPathName();  
        m_strFileName = lv_FileOpenDlg.GetFileName();  
        m_strExtName = lv_FileOpenDlg.GetFileExt();
        strcpy(fin,((LPSTR&)m_strFilePathName));
        CString m_strOutFilePathName=m_strFilePathName.Left(m_strFilePathName.GetLength()-4);
        m_strOutFilePathName.Replace("_res","");
        m_strOutFilePathName+="_pro.lsp";
        strcpy(fou,((LPSTR&)m_strOutFilePathName));
        }  
   

   //
   FILE *in_file,*out_file;
   //register char zf1,zf2;
   in_file=fopen(fin,"rb");
   if(in_file==NULL)
   {  
          //printf("can not open file %s\n",fin);
      AfxMessageBox("\n不能打开LISP源文件!");
      return false;
   }

   CString strINdex;
   fgets((LPSTR&)strINdex, 28, in_file);
   if(strINdex.Find("PROTECTED LISP")!=-1)
   {
      fclose(in_file);
          AfxMessageBox("\nLISP文件已经加密,不能再加密!");
      return false;
   }
   out_file=fopen(fou,"wb");
   if(out_file==NULL)
   {  
          //printf("can not open file %s\n",fou);
      fclose(in_file);
      //exit(1);
          AfxMessageBox("\n不能建立加密文件!");
      return false;
   }
   //
   //0~29:30Bytes,存储加密文件的标识字符串等 "AutoCAD PROTECTED LISP file\0x0D\0x0A\0x1A"
   fputs("AutoCAD PROTECTED LISP file",out_file);//27个 \0x0D\0x0A\0x1A
   fputc(0x0D,out_file);
   fputc(0x0A,out_file);
   fputc(0x1A,out_file);//共30个

   //30:1Bytes,存储密码字符,如'A'
   fputc(0x41,out_file);

   unsigned char pass_ch=0x41;
   unsigned char old_ch;
   unsigned char new_ch;
   unsigned int i;
   fseek(in_file,0,SEEK_SET);
   while (! feof (in_file))
   {
           old_ch=fgetc(in_file);

       //文件结束中断循环
           if (old_ch == 0x1A) //0x1A 文件结束
                      break;   
          
       //若为回车继续循环
           if (old_ch == 0x0D) //0x0D 回车
                      continue;
                  

           //异或运算
           new_ch = pass_ch ^ old_ch;
          
          
       //用上一密码字符
           if ((new_ch == 0x0D)||(new_ch == 0x1A)) //是 回车 或 文件结束
                      new_ch=old_ch;

       //若为换行,则加回车
           if (new_ch == 0x0A) //0x0A 换行
                      putc (0x0D,out_file); //0x0D 回车

           //写入已加密字符
           putc(new_ch,out_file);
          
       //左移一位,相当于乘2
           i=new_ch;
           i = i<<1;

           //溢出位1,加到末位
           if (i>255) i=i-255;

           //产生新的密码字符
           pass_ch = (unsigned char) i;
          
   }
   fclose (in_file);
   putc(0x1A,out_file);
   fclose (out_file);
   return true;
}

评分

参与人数 1威望 +1 D豆 +5 贡献 +1 收起 理由
newer + 1 + 5 + 1 有始有终奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 271个

财富等级: 日进斗金

发表于 2018-5-10 21:49:58 | 显示全部楼层
//lsp文件加密文件的解密:
bool unProtected_Lisp_1()
{
    char fin[1000];
        char fou[1000];
        // 选择的文件名称  
        CString lv_strFileName = _T("");  
        // 设置文件过滤格式  
        CString lv_strFilterLSP = _T("lsp文件(*.lsp)|*.lsp|");  
        CString lv_strFileFilter = lv_strFilterLSP;  
        // 设置文件后缀名称  
        CString lv_strName[] = {"", "lsp",""};  
        CString lv_strExtension = _T("");  

    CString m_strFilePathName;
    CString m_strFileName;
    CString m_strExtName;
        // 打开保存文件对话框  
        CFileDialog lv_FileOpenDlg(FALSE, NULL, NULL, OFN_HIDEREADONLY, lv_strFileFilter);  
    lv_FileOpenDlg.m_ofn.lpstrTitle   =   "【LISP文件解密】 选择已加密的LISP文件:";

        if (IDOK != lv_FileOpenDlg.DoModal())  
        {  
                return false;  
        }  
        else  
        {  
    //  CString CFileDialog::GetPathName :得到完整文件名,包括目录名和扩展名如:c:/test/test1.txt  
    //  CString CFileDialog::GetFileName :得到完整文件名,包括扩展名如:test1.txt  
    //  CString CFileDialog::GetFileExt  :得到完整文件扩展名,如:txt  
    //  CString CFileDialog::GetFileTitle:得到完整文件名,不包括目录名和扩展名如:test1  
        m_strFilePathName = lv_FileOpenDlg.GetPathName();  
        m_strFileName = lv_FileOpenDlg.GetFileName();  
        m_strExtName = lv_FileOpenDlg.GetFileExt();
        strcpy(fin,((LPSTR&)m_strFilePathName));
        CString m_strOutFilePathName=m_strFilePathName.Left(m_strFilePathName.GetLength()-4);
        m_strOutFilePathName.Replace("_pro","");
        m_strOutFilePathName+="_res.lsp";
        strcpy(fou,((LPSTR&)m_strOutFilePathName));
        }  
   

   //
   FILE *in_file,*out_file;
   //register char zf1,zf2;
   in_file=fopen(fin,"rb");
   if(in_file==NULL)
   {  
      AfxMessageBox("\n不能打开LISP已加密的源文件!");
      return false;
   }

   CString strINdex;
   fgets((LPSTR&)strINdex, 28, in_file);
   if(strINdex.Find("PROTECTED LISP")==-1)
   {
      fclose(in_file);
          AfxMessageBox("\nLISP文件没有加密,不用解密!");
      return false;
   }
   out_file=fopen(fou,"wb");
   if(out_file==NULL)
   {  
      fclose(in_file);
      AfxMessageBox("\n不能建立LISP解密文件!");
      return false;
   }

   //30:1Bytes,存储密码字符,如'A'
   //fputc('A',out_file);

   unsigned char pass_ch;

   long strPass=30;
   fseek(in_file,strPass,SEEK_SET);
   pass_ch=fgetc(in_file);
   
   //fputs(";;AutoCAD unPROTECTED LISP file",out_file);//27个
   //fputs("\0x0D\0x0A",out_file);
   //putc(0x0A,out_file);//27个 0x0A
   //printf("strPass=%s\n",pass_ch);
   //CString strFormat;
   //strFormat.Format("strPass=%d\n",pass_ch);
   //AfxMessageBox(strFormat);

   int nIndex=0;
   unsigned char old_ch;
   unsigned char new_ch;
   unsigned int i;

   fseek(in_file,31,SEEK_SET);
   while (! feof (in_file))
   {
       old_ch=fgetc(in_file);


       //文件结束中断循环
           if (old_ch == 0x1A) //0x1A 文件结束
           {
                      break;
           }
          
       //若为回车继续循环
           if (old_ch == 0x0D) //0x0D 回车
                      continue;
                  

           //异或运算
           new_ch = pass_ch ^ old_ch;
          
          
       //用上一密码字符
           if ((new_ch == 0x0D)||(new_ch == 0x1A)) //是 回车 或 文件结束
                      new_ch=old_ch;

       //若为换行,则加回车
           if (new_ch == 0x0A) //0x0A 换行
                      putc (0x0D,out_file); //0x0D 回车

           //写入已加密字符
           putc(new_ch,out_file);

       //左移一位,相当于乘2
           i=old_ch; //注意:这里与加密不同!!!
           i = i<<1;

           //溢出位1,加到末位
           if (i>255)
                   i=i-255;

           //产生新的密码字符
           pass_ch = (unsigned char) i;
          
   }
   fclose (in_file);
   //putc(0x1A,out_file);
   fclose (out_file);
   return true;
}

评分

参与人数 1D豆 +1 收起 理由
yxpxa + 1 青春都一晌,忍把浮名,换了代码飞扬

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

 楼主| 发表于 2018-5-10 22:29:41 | 显示全部楼层
w15994259099 发表于 2018-5-10 22:18
发点小感慨:
    论坛,真实多是自我表现和眩技的地方。
    晓东CAD高手很多,但过于封闭和保守,人气不 ...

赞同。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 05:36 , Processed in 0.245479 second(s), 71 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表