解密高手第二季免费观看

解密高手第二季更新至3集

<% @Language="JavaScript" %> <% /* *--------------- decode.asp ----------------- * 功能:遍历某个目录下的所有文件,对加密过的.asp文件 * 进行解密,并写入源文件中. * 实例:单个文件解密 * Response.Write(DncodeFile(Server.MapPath("conn.asp"))); * 实例:目录下所有文件解密. * DncodeFolderFiles(Server.MapPath("xml")) * author:wanghr100(灰豆宝宝.net) * update:2004-5-17 11:31 *--------------- decode.asp ----------------- */ function DncodeFile(sFilePath) { /* *--------------- DncodeFile(sFilePath) ----------------- * DncodeFile(sFilePath) * 功能:打开文件sFilePath,Encode解密,重写该文件. * 参数:sFilePath,字符串,文件的路径. * 返回:sFilePath,文件的路径. * 实例:Response.Write(DncodeFile(Server.MapPath("conn.asp"))); * author:wanghr100(灰豆宝宝.net) * update:2004-5-17 0:58 *--------------- DncodeFile(sFilePath) ----------------- */ var ForReading = 1, ForWriting =2, ForAppending =8; var fso = Server.CreateObject("Scripting.FileSystemObject"); var f = fso.OpenTextFile(sFilePath,ForReading,true); sFileText = f.ReadAll(); f.Close(); sDncodeText = strdec(sFileText) var f = fso.OpenTextFile(sFilePath,ForWriting,true); f.Write(sDncodeText); f.Close(); //return sDncodeText; return sFilePath; } function GetFilesPath(sFolderPath) { /* *--------------- GetFilesPath(sFolderPath) ----------------- * GetFilesPath(sFolderPath) * 功能:遍历sFolderPath目录下的所有文件.返回数组.存储文件路径. * 参数:sFolderPath,字符串,目录绝对路径. * 实例:Response.Write(GetFilesPath(Server.MapPath("xml"))) * update:2004-5-12 8:33 * author:wanghr100(灰豆宝宝.net) *--------------- GetFilesPath(sFolderPath) ----------------- */ var sFilePath = new Array(); var fso = Server.CreateObject("Scripting.FileSystemObject"); var oFolder = fso.GetFolder(sFolderPath); var oSubFolders = oFolder.SubFolders; var oFiles = oFolder.Files; icount = oFiles.Count; var enmFiles = new Enumerator(oFiles); for(;!enmFiles.atEnd();enmFiles.moveNext()) { sFilePath[sFilePath.length] = enmFiles.item().Path } var enmFolders = new Enumerator(oSubFolders); for(;!enmFolders.atEnd();enmFolders.moveNext()) { /* Old 数组成了多维. */ //sFilePath[sFilePath.length]=GetFilesPath(enmFolders.item().Path); /* Add 2004-5-17 11:09 只为一维数组 */ sFilePath=sFilePath.concat(GetFilesPath(enmFolders.item().Path)); } return sFilePath; } function GetFileType(sFileName) { /* *--------------- GetFileType(sFileName) ----------------- * GetFileType(sFileName) * 功能:通过后缀,取得sFileName的文件类型. * 参数:sFileName,字符串,文件名. * 实例:Response.Write(GetFileType("decode.asp")) * update:2004-5-13 8:33 * author:wanghr100(灰豆宝宝.net) *--------------- GetFileType(sFileName) ----------------- */ sFileName = String(sFileName); return sFileName.split(".")[sFileName.split(".").length-1]; } /* Start 解密实现:李辉煌 Start*/ function screncode(s,l) {enc=new ActiveXObject("Scripting.Encoder"); return enc.EncodeScriptFile("."+l,s,0,l+"cript"); } var STATE_COPY_INPUT = 100 var STATE_READLEN = 101 var STATE_DECODE = 102 var STATE_UNESCAPE = 103 var pick_encoding = new Array( 1, 2, 0, 1, 2, 0, 2, 0, 0, 2, 0, 2, 1, 0, 2, 0, 1, 0, 2, 0, 1, 1, 2, 0, 0, 2, 1, 0, 2, 0, 0, 2, 1, 1, 0, 2, 0, 2, 0, 1, 0, 1, 1, 2, 0, 1, 0, 2, 1, 0, 2, 0, 1, 1, 2, 0, 0, 1, 1, 2, 0, 1, 0, 2 ) var rawData = new Array( 0x64,0x37,0x69, 0x50,0x7E,0x2C, 0x22,0x5A,0x65, 0x4A,0x45,0x72, 0x61,0x3A,0x5B, 0x5E,0x79,0x66, 0x5D,0x59,0x75, 0x5B,0x27,0x4C, 0x42,0x76,0x45, 0x60,0x63,0x76, 0x23,0x62,0x2A, 0x65,0x4D,0x43, 0x5F,0x51,0x33, 0x7E,0x53,0x42, 0x4F,0x52,0x20, 0x52,0x20,0x63, 0x7A,0x26,0x4A, 0x21,0x54,0x5A, 0x46,0x71,0x38, 0x20,0x2B,0x79, 0x26,0x66,0x32, 0x63,0x2A,0x57, 0x2A,0x58,0x6C, 0x76,0x7F,0x2B, 0x47,0x7B,0x46, 0x25,0x30,0x52, 0x2C,0x31,0x4F, 0x29,0x6C,0x3D, 0x69,0x49,0x70, 0x3F,0x3F,0x3F, 0x27,0x78,0x7B, 0x3F,0x3F,0x3F, 0x67,0x5F,0x51, 0x3F,0x3F,0x3F, 0x62,0x29,0x7A, 0x41,0x24,0x7E, 0x5A,0x2F,0x3B, 0x66,0x39,0x47, 0x32,0x33,0x41, 0x73,0x6F,0x77, 0x4D,0x21,0x56, 0x43,0x75,0x5F, 0x71,0x28,0x26, 0x39,0x42,0x78, 0x7C,0x46,0x6E, 0x53,0x4A,0x64, 0x48,0x5C,0x74, 0x31,0x48,0x67, 0x72,0x36,0x7D, 0x6E,0x4B,0x68, 0x70,0x7D,0x35, 0x49,0x5D,0x22, 0x3F,0x6A,0x55, 0x4B,0x50,0x3A, 0x6A,0x69,0x60, 0x2E,0x23,0x6A, 0x7F,0x09,0x71, 0x28,0x70,0x6F, 0x35,0x65,0x49, 0x7D,0x74,0x5C, 0x24,0x2C,0x5D, 0x2D,0x77,0x27, 0x54,0x44,0x59, 0x37,0x3F,0x25, 0x7B,0x6D,0x7C, 0x3D,0x7C,0x23, 0x6C,0x43,0x6D, 0x34,0x38,0x28, 0x6D,0x5E,0x31, 0x4E,0x5B,0x39, 0x2B,0x6E,0x7F, 0x30,0x57,0x36, 0x6F,0x4C,0x54, 0x74,0x34,0x34, 0x6B,0x72,0x62, 0x4C,0x25,0x4E, 0x33,0x56,0x30, 0x56,0x73,0x5E, 0x3A,0x68,0x73, 0x78,0x55,0x09, 0x57,0x47,0x4B, 0x77,0x32,0x61, 0x3B,0x35,0x24, 0x44,0x2E,0x4D, 0x2F,0x64,0x6B, 0x59,0x4F,0x44, 0x45,0x3B,0x21, 0x5C,0x2D,0x37, 0x68,0x41,0x53, 0x36,0x61,0x58, 0x58,0x7A,0x48, 0x79,0x22,0x2E, 0x09,0x60,0x50, 0x75,0x6B,0x2D, 0x38,0x4E,0x29, 0x55,0x3D,0x3F ) var transformed = new Array() for (var i=0; i<3; i++) transformed[i] = new Array() for (var i=31; i<=126; i++) for (var j=0; j<3; j++) transformed[j][rawData[(i-31) * 3 + j]] = (i==31) ? 9 : i var digits = new Array() for (var i=0; i<26; i++) { digits["A".charCodeAt(0)+i] = i digits["a".charCodeAt(0)+i] = i+26 } for (var i=0; i<10; i++) digits["0".charCodeAt(0)+i] = i+52 digits[0x2b] = 62 digits[0x2f] = 63 function unescape(char) { var escapes = "#&!*$" var escaped = " <>@" if (char.charCodeAt(0) > 126) return char if (escapes.indexOf(char) != -1) return escaped.substr(escapes.indexOf(char), 1) return "?" } function decodeBase64(string) { var val = 0 val += (digits[string.substr(0,1).charCodeAt(0)] << 2) val += (digits[string.substr(1,1).charCodeAt(0)] >> 4) val += (digits[string.substr(1,1).charCodeAt(0)] & 0xf) << 12 val += ((digits[string.substr(2,1).charCodeAt(0)] >> 2) << 8) val += ((digits[string.substr(2,1).charCodeAt(0)] & 0x3) << 22) val += (digits[string.substr(3,1).charCodeAt(0)] << 16) return val } function strdec(encodingString) { var marker = "#@~^" var stringIndex = 0 var scriptIndex = -1 var unEncodingIndex = 0 var char = null var encodingLength = unEncodinglength = 0 var state = STATE_COPY_INPUT var unEncodingString = "" var re, arr while(state) { switch (state) { case (STATE_COPY_INPUT) : scriptIndex = encodingString.indexOf(marker, stringIndex) if (scriptIndex != -1) { unEncodingString += encodingString.substring(stringIndex, scriptIndex) scriptIndex += marker.length state = STATE_READLEN } else { stringIndex = stringIndex==0 ? 0 : stringIndex unEncodingString += encodingString.substr(stringIndex, encodingString.length) state = 0 } break case (STATE_READLEN) : encodingLength = encodingString.substr(scriptIndex, 6) unEncodinglength = decodeBase64(encodingLength) scriptIndex += (6 + "==".length) state = STATE_DECODE break case (STATE_DECODE) : if (!unEncodinglength) { stringIndex = scriptIndex + "DQgAAA==^#~@".length unEncodingIndex = 0 state = STATE_COPY_INPUT break } char = encodingString.substr(scriptIndex, 1) if (char == "@") state = STATE_UNESCAPE else { if (char.charCodeAt(0) < 0xFF) { unEncodingString += String.fromCharCode(transformed[pick_encoding[unEncodingIndex%64]][char.charCodeAt(0)]) unEncodingIndex++ } else { unEncodingString += char } scriptIndex++ unEncodinglength-- break } case STATE_UNESCAPE: unEncodingString += unescape(encodingString.substr(++scriptIndex, 1)) scriptIndex++; unEncodinglength -=2 unEncodingIndex++ state = STATE_DECODE break } } re = new RegExp("(JScript|VBscript).encode", "gmi") while(arr = re.exec(unEncodingString)) unEncodingString = RegExp.leftContext + RegExp.$1 + RegExp.rightContext return unEncodingString } /* End 解密实现:李辉煌 End*/ function DncodeFolderFiles(sFolderPath) { /* *--------------- DncodeFolderFiles(sFolderPath) ----------------- * DncodeFolderFiles(sFolderPath) * 功能:遍历sFolderPath目录下的所有文件,对加密过的.asp文件 * 进行解密,并写入源文件中. * 实例:DncodeFolderFiles(Server.MapPath("xml")); * author:wanghr100(灰豆宝宝.net) * update:2004-5-17 8:07 *--------------- DncodeFolderFiles(sFolderPath) ----------------- */ var arrFiles = GetFilesPath(sFolderPath) for(var i=0;i") } } } //取得xml目录下的所有文件.解密. //DncodeFolderFiles(Server.MapPath("xml")) //取得t.asp.解密. //Response.Write(DncodeFile(Server.MapPath("t.asp"))) %>

《解密高手第二季》在线观看地址:/02dydetail/9543.html 欢迎把《解密高手第二季》网址分享给身边的影视爱好者谢谢! ,电影解密高手第二季讲述:  众所周知,很多品牌PLC的程序都可以通过软件解读,那么一旦破解后程序就会很透明地显示在别人的眼睛里,如果把设备卖给别人锁定PLC程序整体而死又不现实甲不能维持;保密和维护权利是中国市场不衰的话题,实际上德国工程师不是对自己的整个程序进行加密,而是使用其他方法,不影响故障时的诊断,可以保护自己的核心机密。今天向大家介绍这些方法,作为参考。   使用西门子安全PLC或博途KNOWHOW功能   1、西门子安全PLC作为西门子的主要安全功能之一,其性能毋庸置疑,而且在安全PLC块加密后无法解读。可以很好地保护核心。博途PLC作为西门子的最新产品,其著作权保护也是其主要功能之一,KNOWWOW功能是软硬件的双重加密,未加密的块可以正常监视,没有密码就不能下载到其他PLC。因此,通过使用博途KNOWHOW功能,可以将程序传递给甲方,便于维护,可以保护自己的核心程序不被盗。   用高级语言创建一些重要进程   2、西门子除了最基础的LAD梯形图的编程外,还有很多其他方法可以编程FBO功能块和编程STL文件表。例如,PCS7的CFC、SFC等。除此之外还有SCL、S7-Graph等。对于这些语言,一般的工控人员都很难精通,所以模仿的难度大幅度提高,因此非常重要的工艺程序可以用这些语言书写,可以很好地保护自己的核心。   (1)采用编程方式   a)采用模块化的程序结构,采用符号名、参数化编辑子程序块。   b)尽量采用背景数据块和多背景数据传输方式。   c)通常采用间接地址的编程方式。   d)复杂系统的控制程序,尤其是具有一些排序控制或处方控制的程序可以考虑通过数据编程方案(即数据的变化)来改变系统的控制逻辑或控制顺序。   用户必须尽量采用以上几个高级阶层的编程方式。只有在这样创建的程序中嵌入了系统的保护加密程序,才能在未被发现的情况下进行模仿。   (2)主动保护方法   a)利用系统时钟;   b)使用程序卡或CPU的ID号码和序列号。   c)利用EEPROM的反写入功能和设定的存储器保持功能。   d)利用系统提供的累加器功能;   e)在用户程序的数据块中设定密码;   f)在软件上设置逻辑陷阱;   g)可以反过来利用编程中自己犯的错误。   (3)被动保护方法   a)在内存容量利用许可下,不删除被认为不需要的程序。   b)在数据块上留下开发者的标识,以便在将来受到侵权的情况下证明。   (4)适用防盗技术的注意事项   a)在用户程序中嵌入保护程序是很自然的,不能突然添加程序。代码必须尽量简化,变量符号名称必须与嵌入程序段的变量一致。   b)往往因为一种保护加密手段不足,所以应同时使用多种方法,并且这些保护程序一旦激活了,给系统的结果也应尽可能不同,造成所谓的“地雷效应”,从而增加程序被盗的难度,时间和成本无法在短时间内对剽窃者下手;   c)保护程序的原始代码,如果需要交付程序,在不影响用户设备维护的前提下,对交付的程序进行适当的技术处理,例如删除部分符号名称采用上传的程序或数据块;   d)进行严格的测试,避免因保护程序不完备导致的误动作而产生的不必要的故障,同时也可以降低售后服务的费用。   通信功能的使用   3、在实际应用中,经常会遇到系统之间需要数据交换的问题(多个PLC之间、PLC和第三方仪表之间),并且建议在西蒙子产品之间、西蒙子产品和第三方产品之间使用通信方法来代替模拟量或交换量之间的信号互连。与前者相比,模仿者只能看到一条硬件的通信线,模仿者必须研究具体的用户程序才能清楚多少数据是通过通信交换的。对于后者,开发者是省力的,模仿者也是一目了然的,可以一览无余。   对于一些频率转换器和伺服电动机等的程序设计,一般有多种方式,可以直接控制线路或进行通信控制,但是使用通信方式的话程序会增加模拟的难度,例如PLC对于伺服驱动器的控制有多种类型简单的是脉冲直接控制和模拟量控制,这个方式容易模拟,如果变成通信控制,程序就会复杂,如果复制者对报纸不详细,就很难复制。   控制系统可由多个子控制系统构成,由此形成多CPU和人机接口的网络,西门子S7-200产品一般为PPI网络,S7-0400产品一般为MPI网络通常是人接口和CPU之间的数据交换,但是也可以追加不需要组装到CPU的用户程序中的S7基本通信功能(S7-200可以使用NETRNETW命令,S7-0400可以使用X PUTX GET命令)。副系统控制逻辑的互锁在CPU之间以定时或不定时执行少量数据交换,并且通过这些数据实现。对于这样的系统,模拟器分析一个子系统的程序也不容易。   采用面板类型的人机界面   4、尽可能在自动化系统中使用面板类型的人界面来代替单个按钮灯,而许多人界面在没有源程序的情况下只有备份和恢复功能,能够完全实现维护功能虽然HMI这个层的程序是秘密的,但是对于PLC系统来说,即使有源程序,HMI部分的标记也很难模仿。   另外,开发者可以在面板画面上添加明显的制造商标志和联系方式等信息,模仿者不能照搬。   这样,如果模仿者想要复制程序,则必须改写操作面板的程序,甚至PLC的程序,但是开发者可以利用面板和PLC数据接口的一些特殊功能区域(例如,西门子面板的区域指针或VB脚本)来控制PLC的程序执行。这样的PLC程序在没有HMI源程序的情况下,只能通过推测和在线监视来取得PLC内部变量的变化逻辑,花费时间和精力,极大地提高了模仿模仿模仿的难度。   采用非标准人机接口   5、德国工程师想用这个方法。   在中国,很多工程师都想使用WINCC、INTOUCH或团体王等,其实除了这些软件之外,他们还需要利用VB自己写程序。关于软件和PLC的接口,可以选择LIBNODAVE或其他程序库。用这种方法写的人界面有很多好处。首先没有著作权的问题。VB软件是免费的。另外,在WINDOW系统升级时,只需简单添加几个文件即可实现。像WINCC那样,如果window升级了,需要大量修正文件。普通人无法修正,不用说模仿。如果没有好的计算机编程基础的话,就不能简单地修改,但是如果仅仅是计算机基础上没有PLC和工艺基础的话就不能变更。作者曾经利用S7-300制作过这样的系统,我的目的不是保密,而是甲方的要求,坐着的系统完全按照自己的风格,很舒服。

解密高手第二季是由西蒙·赛伦·琼斯执导、罗彼·考特拉尼,杰拉丁·萨莫维尔,克里斯托弗·埃克莱斯顿,基兰·奥布莱恩等领衔主演的美国,在1993上映播出,yy6080影院提供了解密高手第二季在线观看,并且还可以支持手机看,不需要下载播放器,方便广大影迷。