把Xilinx的IPCORE解密成源代码的方法
把Xilinx的IPCORE解密成源代码的方法
以can_v1_5/can_tl_bsp.vhd为例子
a)前8个字节XlxV38EB是加密的版本号,没研究过其他加密版本,不知道有什么不同
后面的fa00不知道做什么用
b)第二行前8字节是这段密文长度,表示过3230H字节后是下一个加密段
c)从18h开始是明文经过Zlib压缩后DES加密的
----------------------
00000000h: 58 6C 78 56 33 38 45 42 20 20 20 20 66 61 30 30 ; XlxV38EB fa00
00000010h: 20 20 20 20 33 32 33 30 39 1E 5F B2 14 42 33 C1 ; 32309._?B3?
00000020h: 82 40 EA 28 A0 8D 8C E9 8B 75 8B 0E 7C C4 6E BA ; 侤?爫岄媢?|膎?
00000030h: B0 2F 08 7C 51 C0 B0 45 01 D5 BD B8 73 A1 A1 09 ; ?.|Q腊E.战竤 .
00000040h: 71 2A 81 FA A7 9E 99 CA 9C BE 15 7C 44 D1 E9 C1 ; q*侜櫴溇.|D验?
00000050h: D5 A8 81 9B 1E 3A 19 47 4A 49 AA 87 1C E2 E2 46 ; 炸仜.:.GJI獓.忖F
。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。
00003220h: 0F DD 81 68 7A B1 C5 92 FD 7C 77 FB 73 96 46 82 ; .輥hz迸掿|w鹲朏?
00003230h: A4 63 0B F1 64 17 1D D5 18 19 B2 E8 1D 23 DF 0F ; .馾..?.茶.#?
00003240h: 24 11 C2 D4 D0 90 38 7D 58 6C 78 56 33 38 45 42 ; $.略袗8}XlxV38EB
00003250h: 20 20 20 20 36 38 64 37 20 20 20 20 31 34 66 63 ; 68d7 14fc
00003260h: D5 F9 A3 5C F9 7D D7 4A 72 09 19 86 03 62 C4 2C ; 争鶀譐r..?b?
00003270h: FE DC 28 58 7E 1F 91 2F 0F CD A8 DB 8E A0 FF 37 ; (X~.?.通蹘?7
00003280h: 01 F4 62 07 CE BA 6E 3C BB 67 4C B0 D9 E8 AE E3 ; .鬮.魏n<籫L百璁
2.解密方法
1)先用DES还原被加密的文件,每8字节为一组。
如果密文长度不能被8整除,剩余的字节不处理。
2)Xilinx的IPCORE所用DES的Key是固定的8f c2 d3 a0 XX XX XX XX,可以用下面这组值穷举出来。
39 1E 5F B2 14 42 33 C1 解密为75 41 73 32 dd 59 ea 0c
3)再与异或初始值0d 9b 9e 4f b6 2a f1 37异或
4)得到结果 78 73 32 dd xx xx xx xx
5)异或初始值替换为上8个字节39 1E 5F B2 14 42 33 C1,解密下8个字节,
6)重复第五步解密直到结束
7)将各个解密段拼成一个文件
3.从http://www.zlib.net/下载Zlib压缩库,调用其中的解压缩函数
1)假设解密后的文件是compfile调用这个函数inf(compfile,tfile);
2)这个tfile文件既是源码文件
-- $Id: can_tl_bsp.vhd,v 1.1.2.2 2007/05/28 13:39:29 snori Exp $
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Copyright(C) 2007 by Xilinx, Inc. All rights reserved.
-- This text/file contains proprietary, confidential
-- information of Xilinx, Inc., is distributed under
-- license from Xilinx, Inc., and may be used, copied
-- and/or disclosed only pursuant to the terms of a valid
-- license agreement with Xilinx, Inc. Xilinx hereby
。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。
smcomb: process(state, RXE_COUNTER_I, SM_STUFFBIT_PD,SM_STUFFBIT,
BSOFF_COUNTER_I, TEC_INC8_I, EMU_TEC_BOFF_LT1,
EMU_REC_ERRACT,BTL_RXBIT,IC_MSR_LBACK,IC_MSR_SLEEP,
TX_HPB_EMPTY,TX_FIFO_EMPTY)
begin
-- Enable Stuff Module when State = ID and after the 3rd bit
-- after SOF been received.
if (state = ID and RXE_COUNTER_I = C3) then
RXE_SM_EN <= '1';
else
RXE_SM_EN <= '0';
end if;
-- Reset CRC when State = EOF
-- When RXE_CRC_RST = '1', the CRC register is reset.
-- Reset when State = EOF and RXE_COUNTER_I = CO
-- (After ACK field)
-- Reset when in ERRACT and ERRPASS and RXE_COUNTER_I = C0. It is possible
-- that Reset could be asserted for multiple cycles.
if ((state = EOF and RXE_COUNTER_I = C0) or
((state = ERRACT or state = ERRPASS) and RXE_COUNTER_I = C1)
or state = BOFF) then
RXE_CRC_RST <= '1';
else
RXE_CRC_RST <= '0';
end if;
-- CRC Enable is '1' ID, CTL and DATA states
if (state = ID or state = CTL or state = DATA) then
RXE_CRC_EN <= '1';
else
RXE_CRC_EN <= '0';
end if;
-- Stuff Module reset when Error or when State = CRC and the 15th bit has
-- been received and the next bit is not a stuff bit.
if (( state = CRC and RXE_COUNTER_I = C15 and SM_STUFFBIT_PD = '0')
or (( state = ERRACT or state = ERRPASS or state = BOFF)
and RXE_COUNTER_I = C0 )) then
RXE_SM_RST <= '1';
else
RXE_SM_RST <='0';
end if;
把Xilinx的IPCORE解密成源代码的方法的更多相关文章
- web.config/app.config敏感数据加/解密的二种方法
一 建立虚拟目录 http://localhost/EncryptWebConfig,并添加web.config,其中包含数据库连接字符串: <connectionStrings> ...
- ASP.Net中实现上传过程中将文本文件转换成PDF的方法
iTextSharp是一个常用的PDF库,我们可以使用它来创建.修改PDF文件或对PDF文件进行一些其他额外的操作.本文讲述了如何在上传过程中将文本文件转换成PDF的方法. 基本工作 在开始之前,我们 ...
- C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...
- php查看网页源代码的方法
这篇文章主要介绍了php查看网页源代码的方法,涉及php读取网页文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了php查看网页源代码的方法.分享给大家供大家参考.具体实现 ...
- 将编码从GB2312转成UTF-8的方法汇总(从前台、程序、数据库)
这篇文章主要介绍了将编码从GB2312转成UTF-8的方法汇总(从前台.程序.数据库),需要的朋友可以参考下 一个网站如果需要国际化,就需要将编码从GB2312转成UTF-8,其中有很多的问题需要注意 ...
- 把C编译成javascript的方法
把C编译成javascript的方法,便于嵌入到HTML5中 https://github.com/kripken/emscripten
- js面向过程改写成面向对象--通用方法
响亮的标题:一个万能的,保底的.面向过程改写成面向对象的方法 前提朗读:很多刚接触js面向对象的时候都不知道如何能快速的写出一个面向对象的程序,这个是必然的现象,不是每一位学js的一上来就会写面向对象 ...
- Windows 程序注册成服务的方法
Windows 程序注册成服务的方法 将windows 程序注册成服务这个是很多后台程序需要实现的功能,注册成服务后,你的程序就可以像windows 服务一样随系统启动,并且隐藏你的控制台界面.下面介 ...
- CAJ转换成PDF在线方法是什么
做学术性的朋友经常会需要将CAJ文件转换成PDF文件,毕竟CAJ文件只能在CAJ阅读器上显示,但是有很多转换软件并不能很好的完成转换,小编今天就为大家讲解一下CAJ转换成PDF在线方法是什么,大家要认 ...
随机推荐
- Android studio 2.0--android增量更新的那些事
用了这么久的AS 2.0预览版本号.4.7日谷歌最终公布了android studio 2.0正式版,小编当日便下载了.玩了一下.感觉第二次build编译明显快了,并且好像并没有又一次部署apk.经过 ...
- GP开发示例:数据库去重
这个例子专业讲解基于ArcEngine使用GP开发的过程及遇到的问题.更多GP使用方法:GP使用心得 功能需求:现在外业第一次数据(简称调绘.mdb)和第二次数据(简称检查.mdb)有重复.第二次是在 ...
- Python编程-Office操作-操作Excel(中)
例子文件如下: 一些复杂的读取操作getCells.py import openpyxl wb = openpyxl.load_workbook('example.xlsx') sheet = wb. ...
- leetcode Wildcard Matching greedy algrithm
The recursive program will result in TLE like this: class Solution { public: bool isMatch(const char ...
- SQL Server表描述 及 字段描述的增、删、改、查询
SQL Server表描述 及 字段描述的增.删.改.查询 --测试: --创建表及描述信息 ),isname )) --为表添加描述信息 EXECUTE sp_addextendedproperty ...
- 如何从maven资源库下载jar包
如何从maven资源库下载jar包 CreationTime--2018年6月7日09点00分 Author:Marydon 一.前提 需要安装并配置maven环境 二.准备工作 1.在桌面创建一 ...
- SettingsNotePad++
迁移时间:2017年5月20日11:04:46Author:Marydon官网下载 http://notepad-plus.en.softonic.com/1.修改字体大小及背景色 设置--> ...
- SwaggerUI+SpringMVC——构建RestFul API的可视化界面
今天给大家介绍一款工具,这个工具眼下可预见的优点是:自己主动维护最新的接口文档. 我们都知道,接口文档是非常重要的,可是随着代码的不断更新,文档却非常难持续跟着更新,今天要介绍的工具,完美的攻克了这个 ...
- Eclipse调试cas server 3.5.2.1
由于在配置CAS+LDAP总是报错,决定Eclipse调试cas server,跟踪问题出在哪里? ================================================== ...
- lenovo thinkpad L460 安装Win7阐述
lenovo thinkpad L460 系统自带Win10切GPT分区,如果想安装Win7 01.需要改bios 02.清空硬盘全盘数据,调整分区类型MBR分区引导(需要全盘格式化,调整引导类型) ...