Xilinx IP核解密源码
如果有需要Xilinx IP核解密的可以站短我 收费的还是? yuxiang2 发表于 2014-8-17 13:30收费的还是?
这样肯定是收费的节奏 谈钱伤感情,免费!免费!免费! 楼主解密出来的源码是verilog或者vhdl的吗?如果是的话,先传一个包fifo的来看看呗 我买了一块KC705的板子,编译软件是ISE14.7,可是现在不知道什么问题,现在软件可以编译virtex5系列及以前的低端芯片,但是板子上面的XC7K325,编译一直报错,生成不了bit文件,我想是不是liscence原因,导致编译软件不支持这系列的芯片,官网上面也找了很久,还是没有找到解决办法,所以想请大神帮帮忙,看能不能解决这个问题,谢谢。 本帖最后由 tiancai_ 于 2014-8-17 15:14 编辑
cxhy 发表于 2014-8-17 14:16
楼主解密出来的源码是verilog或者vhdl的吗?如果是的话,先传一个包fifo的来看看呗 ...
要看IP里面给的是VHDL还是Verilog。
比如D:\Xilinx\14.7\ISE_DS\ISE\coregen\ip\xilinx\dsp\com\xilinx\ip\xfft_v8_0\butterfly.vhd这个
-- $Id: butterfly.vhd,v 1.2 2010/09/08 12:33:07 andreww Exp $
--
--(c) Copyright 1995-2007, 2009-2010 Xilinx, Inc. All rights reserved.
--
--This file contains confidential and proprietary information
--of Xilinx, Inc. and is protected under U.S. and
--international copyright and other intellectual property
--laws.
--
--DISCLAIMER
--This disclaimer is not a license and does not grant any
--rights to the materials distributed herewith. Except as
--otherwise provided in a valid license issued to you by
--Xilinx, and to the maximum extent permitted by applicable
--law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
--WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
--AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
--BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
--INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
--(2) Xilinx shall not be liable (whether in contract or tort,
--including negligence, or under any other theory of
--liability) for any loss or damage of any kind or nature
--related to, arising under or in connection with these
--materials, including for any direct, or any indirect,
--special, incidental, or consequential loss or damage
--(including loss of data, profits, goodwill, or any type of
--loss or damage suffered as a result of any action brought
--by a third party) even if such damage or loss was
--reasonably foreseeable or Xilinx had been advised of the
--possibility of the same.
--
--CRITICAL APPLICATIONS
--Xilinx products are not designed or intended to be fail-
--safe, or for use in any application requiring fail-safe
--performance, such as life-support or safety devices or
--systems, Class III medical devices, nuclear facilities,
--applications related to the deployment of airbags, or any
--other applications that could lead to death, personal
--injury, or severe property or environmental damage
--(individually and collectively, "Critical
--Applications"). Customer assumes the sole risk and
--liability of any use of Xilinx products in Critical
--Applications, subject only to applicable laws and
--regulations governing limitations on product liability.
--
--THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
--PART OF THIS FILE AT ALL TIMES.
------------------------------------------------------------------------------
--the butterfly without bypass option
library ieee;
use ieee.std_logic_1164.all;
library xfft_v8_0;
entity butterfly is
generic (
C_XDEVICEFAMILY : string:= "no_family";
DATA_WIDTH : integer;
C_BFLY_TYPE : integer;
C_HAS_SUB : integer := 0;
HAS_INPUT_REG : integer := 1;
SINGLE_OUTPUT : integer := 0);
port (
CLK : instd_logic := '0';
CE : instd_logic := '0';
SUB_Ar : instd_logic := '0';
SUB_Br : instd_logic := '1';
SUB_Ai : instd_logic := '0';
SUB_Bi : instd_logic := '1';
X0r, X0i, X1r, X1i : instd_logic_vector(data_width-1 downto 0) := (others => '0');
Y0r, Y0i, Y1r, Y1i : out std_logic_vector(data_width downto 0) := (others => '0'));
end entity butterfly;
architecture xilinx of butterfly is
-- ADD inputs for logic adders and subtracters
signal ADD_Ar : std_logic := '0';
signal ADD_Ai : std_logic := '0';
signal ADD_Br : std_logic := '0';
signal ADD_Bi : std_logic := '0';
begin
logic_butterfly : if (C_BFLY_TYPE = 0) generate
-- Logic adders and subtracters have ADD inputs, so negate SUB_* signals to get ADD signals
ADD_Ar <= not SUB_Ar;
ADD_Ai <= not SUB_Ai;
ADD_Br <= not SUB_Br;
ADD_Bi <= not SUB_Bi;
add_r : entity xfft_v8_0.adder
中间略去500字……
y1i => y1i);
end generate dsp_butterfly;
end architecture xilinx;
本帖最后由 tiancai_ 于 2014-8-17 15:15 编辑
cxhy 发表于 2014-8-17 14:16
楼主解密出来的源码是verilog或者vhdl的吗?如果是的话,先传一个包fifo的来看看呗 ...
再比如D:\Xilinx\14.7\ISE_DS\ISE\coregen\ip\xilinx\primary\com\xilinx\ip\fifo_generator_v9_3\fifo_generator_top.vhd
-------------------------------------------------------------------------------
-- $Id: fifo_generator_top.vhd,v 1.1 2011/06/02 09:43:54 robertb Exp $
-- Title : Top-level synthesizable file for the FIFO Generator
-- Project : FIFO Generator
-------------------------------------------------------------------------------
-- (c) Copyright 2006 - 2009 Xilinx, Inc. All rights reserved.
--
-- This file contains confidential and proprietary information
-- of Xilinx, Inc. and is protected under U.S. and
-- international copyright and other intellectual property
-- laws.
--
-- DISCLAIMER
-- This disclaimer is not a license and does not grant any
-- rights to the materials distributed herewith. Except as
-- otherwise provided in a valid license issued to you by
-- Xilinx, and to the maximum extent permitted by applicable
-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND
-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
-- (2) Xilinx shall not be liable (whether in contract or tort,
-- including negligence, or under any other theory of
-- liability) for any loss or damage of any kind or nature
-- related to, arising under or in connection with these
-- materials, including for any direct, or any indirect,
-- special, incidental, or consequential loss or damage
-- (including loss of data, profits, goodwill, or any type of
-- loss or damage suffered as a result of any action brought
-- by a third party) even if such damage or loss was
-- reasonably foreseeable or Xilinx had been advised of the
-- possibility of the same.
--
-- CRITICAL APPLICATIONS
-- Xilinx products are not designed or intended to be fail-
-- safe, or for use in any application requiring fail-safe
-- performance, such as life-support or safety devices or
-- systems, Class III medical devices, nuclear facilities,
-- applications related to the deployment of airbags, or any
-- other applications that could lead to death, personal
-- injury, or severe property or environmental damage
-- (individually and collectively, "Critical
-- Applications"). Customer assumes the sole risk and
-- liability of any use of Xilinx products in Critical
-- Applications, subject only to applicable laws and
-- regulations governing limitations on product liability.
--
-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
-- PART OF THIS FILE AT ALL TIMES.
--
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- File : fifo_generator_top.vhd
-- Author : Xilinx
-------------------------------------------------------------------------------
-- Structure:
-- fifo_generator_top
-- |
-- +-- fifo_generator_ramfifo
-- |
-- +-- fifo_generator_v9_3_builtin
-- |
-- +-- fifo_generator_fifo16_patch
-- |
-- +-- fifo_generator_shiftram
-- --
--
-------------------------------------------------------------------------------
-- Description:This is the top-level synthesizable file for the FIFO Generator
-- core. It instantiates one of the various core implementations:
-- builtin, v4 patch, shiftram and ram based FIFOs
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
LIBRARY fifo_generator_v9_3;
USE fifo_generator_v9_3.fifo_generator_v9_3_pkg.ALL; -- for equalIgnoreCase fn
ENTITY fifo_generator_top IS
GENERIC (
---------------------------------------------------------------------------
-- Generic Declarations
---------------------------------------------------------------------------
C_FAMILY : string:= "";
C_COMMON_CLOCK : integer := 0;
C_MEMORY_TYPE : integer := 1;
C_IMPLEMENTATION_TYPE : integer := 0;
C_PRELOAD_REGS : integer := 0;
C_PRELOAD_LATENCY : integer := 1;
C_DIN_WIDTH : integer := 8;
C_WR_DEPTH : integer := 256;
C_WR_PNTR_WIDTH : integer := 8;
C_DOUT_WIDTH : integer := 8;
C_RD_DEPTH : integer := 256;
C_RD_PNTR_WIDTH : integer := 8;
C_PROG_FULL_TYPE : integer := 0;
C_PROG_FULL_THRESH_ASSERT_VAL : integer := 0;
C_PROG_FULL_THRESH_NEGATE_VAL : integer := 0;
C_PROG_EMPTY_TYPE : integer := 0;
C_PROG_EMPTY_THRESH_ASSERT_VAL : integer := 0;
C_PROG_EMPTY_THRESH_NEGATE_VAL : integer := 0;
C_USE_ECC : integer := 0;
C_ERROR_INJECTION_TYPE : integer := 0;
C_HAS_ALMOST_EMPTY : integer := 0;
C_HAS_ALMOST_FULL : integer := 0;
C_PRIM_FIFO_TYPE : string:= "4kx4";
C_FIFO_TYPE : integer := 0; -- 0 = Data FIFO, 1 = Packet FIFO, 2 = Low Latency Sync FIFO 3 = Low Latency Async FIFO
-- 3 = Low Latency Async FIFO, 4 = Low Latency Built-in FIFO
C_USE_SYNC_CLK : integer := 0;
C_BYTE_STRB_WIDTH : integer := 8;
C_USE_INPUT_CE : integer := 0;
C_USE_OUTPUT_CE : integer := 0;
C_AXI_TYPE : integer := 0; -- 0: AXI Stream; 1: AXI Full; 2: AXI Lite
C_HAS_WR_RST : integer := 0;
C_HAS_RD_RST : integer := 0;
C_HAS_RST : integer := 1;
C_HAS_SRST : integer := 0;
C_DOUT_RST_VAL : string:= "";
C_HAS_VALID : integer := 0;
C_VALID_LOW : integer := 0;
C_HAS_UNDERFLOW : integer := 0;
C_UNDERFLOW_LOW : integer := 0;
C_HAS_WR_ACK : integer := 0;
C_WR_ACK_LOW : integer := 0;
C_HAS_OVERFLOW : integer := 0;
C_OVERFLOW_LOW : integer := 0;
C_HAS_DATA_COUNT : integer := 0;
C_DATA_COUNT_WIDTH : integer := 2;
C_HAS_RD_DATA_COUNT : integer := 0;
C_RD_DATA_COUNT_WIDTH : integer := 2;
C_USE_FWFT_DATA_COUNT : integer := 0;
C_HAS_WR_DATA_COUNT : integer := 0;
C_WR_DATA_COUNT_WIDTH : integer := 2;
C_FULL_FLAGS_RST_VAL : integer := 1;
C_USE_EMBEDDED_REG : integer := 0;
C_USE_DOUT_RST : integer := 0;
C_MSGON_VAL : integer := 1;
C_ENABLE_RST_SYNC : integer := 1;
C_SYNCHRONIZER_STAGE : integer := 2;
C_COUNT_TYPE : integer := 0;
C_DEFAULT_VALUE : string:= "";
C_ENABLE_RLOCS : integer := 0;
C_HAS_BACKUP : integer := 0;
C_HAS_INT_CLK : integer := 0;
C_HAS_MEMINIT_FILE : integer := 0;
C_INIT_WR_PNTR_VAL : integer := 0;
C_MIF_FILE_NAME : string:= "";
C_OPTIMIZATION_MODE : integer := 0;
C_RD_FREQ : integer := 1;
C_USE_FIFO16_FLAGS : integer := 0;
C_WR_FREQ : integer := 1;
C_WR_RESPONSE_LATENCY : integer := 1
);
PORT(
--------------------------------------------------------------------------------
-- Input and Output Declarations
--------------------------------------------------------------------------------
BACKUP : INstd_logic := '0';
BACKUP_MARKER : INstd_logic := '0';
INT_CLK : INstd_logic := '0';
CLK : INstd_logic := '0';
WR_CLK : INstd_logic := '0';
RD_CLK : INstd_logic := '0';
RST : INstd_logic := '0';
SRST : INstd_logic := '0';
WR_RST : INstd_logic := '0';
RD_RST : INstd_logic := '0';
DIN : INstd_logic_vector(C_DIN_WIDTH-1 DOWNTO 0) := (OTHERS => '0');
WR_EN : INstd_logic := '0';
RD_EN : INstd_logic := '0';
-- Optional inputs
PROG_EMPTY_THRESH : INstd_logic_vector(C_RD_PNTR_WIDTH-1 DOWNTO 0) := (OTHERS => '0');
PROG_EMPTY_THRESH_ASSERT: INstd_logic_vector(C_RD_PNTR_WIDTH-1 DOWNTO 0) := (OTHERS => '0');
PROG_EMPTY_THRESH_NEGATE: INstd_logic_vector(C_RD_PNTR_WIDTH-1 DOWNTO 0) := (OTHERS => '0');
PROG_FULL_THRESH : INstd_logic_vector(C_WR_PNTR_WIDTH-1 DOWNTO 0) := (OTHERS => '0');
PROG_FULL_THRESH_ASSERT : INstd_logic_vector(C_WR_PNTR_WIDTH-1 DOWNTO 0) := (OTHERS => '0');
PROG_FULL_THRESH_NEGATE : INstd_logic_vector(C_WR_PNTR_WIDTH-1 DOWNTO 0) := (OTHERS => '0');
INJECTDBITERR : INstd_logic := '0';
INJECTSBITERR : INstd_logic := '0';
INPUT_CE : INstd_logic := '0';
OUTPUT_CE : INstd_logic := '0';
END_OF_PACKET : INstd_logic := '0';
BYTE_STROBE : INstd_logic_vector(C_BYTE_STRB_WIDTH-1 DOWNTO 0);
DOUT : OUT std_logic_vector(C_DOUT_WIDTH-1 DOWNTO 0);
FULL : OUT std_logic;
ALMOST_FULL : OUT std_logic;
WR_ACK : OUT std_logic;
OVERFLOW : OUT std_logic;
EMPTY : OUT std_logic;
ALMOST_EMPTY : OUT std_logic;
VALID : OUT std_logic;
UNDERFLOW : OUT std_logic;
DATA_COUNT : OUT std_logic_vector(C_DATA_COUNT_WIDTH-1 DOWNTO 0);
RD_DATA_COUNT : OUT std_logic_vector(C_RD_DATA_COUNT_WIDTH-1 DOWNTO 0);
WR_DATA_COUNT : OUT std_logic_vector(C_WR_DATA_COUNT_WIDTH-1 DOWNTO 0);
PROG_FULL : OUT std_logic;
PROG_EMPTY : OUT std_logic;
SBITERR : OUT std_logic;
DBITERR : OUT std_logic
);
END fifo_generator_top;
architecture xilinx of fifo_generator_top is
---------------------------------------------------------------------------
--DEBUG outputs
-- These internal signals are used in place of the output pins of this
-- module. These internal signals are used to tie-off the DEBUG outputs
-- of the XST module when not being used by the core.
---------------------------------------------------------------------------
SIGNAL DEBUG_WR_PNTR : std_logic_vector(C_WR_PNTR_WIDTH-1 DOWNTO 0);
SIGNAL DEBUG_RD_PNTR : std_logic_vector(C_RD_PNTR_WIDTH-1 DOWNTO 0);
SIGNAL DEBUG_RAM_WR_EN : std_logic;
SIGNAL DEBUG_RAM_RD_EN : std_logic;
SIGNAL debug_wr_pntr_w : std_logic_vector(C_WR_PNTR_WIDTH-1 DOWNTO 0);
SIGNAL debug_wr_pntr_plus1_w : std_logic_vector(C_WR_PNTR_WIDTH-1 DOWNTO 0);
SIGNAL debug_wr_pntr_plus2_w : std_logic_vector(C_WR_PNTR_WIDTH-1 DOWNTO 0);
SIGNAL debug_wr_pntr_r : std_logic_vector(C_WR_PNTR_WIDTH-1 DOWNTO 0);
SIGNAL debug_rd_pntr_r : std_logic_vector(C_RD_PNTR_WIDTH-1 DOWNTO 0);
SIGNAL debug_rd_pntr_plus1_r : std_logic_vector(C_RD_PNTR_WIDTH-1 DOWNTO 0);
SIGNAL debug_rd_pntr_w : std_logic_vector(C_RD_PNTR_WIDTH-1 DOWNTO 0);
SIGNAL DEBUG_RAM_EMPTY : std_logic;
SIGNAL DEBUG_RAM_FULL : std_logic;
SIGNAL wr_en_ce : std_logic := '0';
SIGNAL rd_en_ce : std_logic := '0';
---------------------------------------------------------------------------
-- Constant definition
---------------------------------------------------------------------------
--CONSTANTC_RD_EN_MAXFAN : integer := if_then_else((equalIgnoreCase(C_FAMILY,"virtex5")),DEFAULT_RD_EN_MAXFAN_V5, DEFAULT_RD_EN_MAXFAN);
--CONSTANTC_WR_EN_MAXFAN : integer := if_then_else((equalIgnoreCase(C_FAMILY,"virtex5")),DEFAULT_WR_EN_MAXFAN_V5, DEFAULT_WR_EN_MAXFAN);
CONSTANT C_DEPTH_RATIO_WR : integer
:= if_then_else( (C_WR_DEPTH>C_RD_DEPTH), (C_WR_DEPTH/C_RD_DEPTH), 1);
CONSTANT C_DEPTH_RATIO_RD : integer
:= if_then_else( (C_RD_DEPTH>C_WR_DEPTH), (C_RD_DEPTH/C_WR_DEPTH), 1);
BEGIN
gice: IF (C_USE_INPUT_CE = 1) GENERATE
wr_en_ce <= WR_EN AND INPUT_CE;
END GENERATE gice;
中间略去500字……
END GENERATE gbiv5;
END xilinx;
哇偶。。。这么多 本帖最后由 chenchaoting 于 2014-8-17 15:55 编辑
相当于专业卖家了。。。。 楼主好人啊,能不能生成一份有block数量可以配置,每个block大小可以配置的包fifo。我现在用的包fifo是加密的代码,多谢了哈 如果内容太多可以传个压缩包,我整理整理再发上来 不明觉厉 呼叫楼主 大哥 流弊啊。 要不然来个CRC32的IP吧,再次呼叫楼主 楼主大神,我刚接触FPGA,看视频教程里面用到IP核 我这好些个都是灰的 这个有办法吗? 楼主把价格说一下吧,还有altera的ip吗,还是两者通用 楼主能给一个Xilinx的SPI的源码么?Slave 或者 Master Slave的都可以,谢谢
guolh@163.com 楼主能弄个网口的吗? 本帖最后由 jssd 于 2015-10-26 17:07 编辑
这些不是免费的嘛.xilinx官网有{:lol:},vivado和ise有很多{:lol:}
给个网站
http://hamsterworks.co.nz/mediawiki/index.php/FPGA_Projects
ise中各种加密IP,有需要的没 请问楼主有vivado里面MAC的IP吗? 请问楼主有vivado里面MAC的IP吗? altera IP 蛮贵的,上次联系了一下,一个在不同电脑上可以用的license需要10W左右呢 这个不错,MARK 流弊啊 是逆向出了算法实现静态解密吗?我这有个ngc文件想麻烦解密一下 请问楼主BlackBox生成的ngc有可能解出vhd文件吗 麻烦楼主给个XILINX IP ADDER 的源代码,a2791464@163.com 感谢! 麻烦你帮我解密一个IP 加我Q:76025925有重谢! blue1025 发表于 2015-11-6 19:50
ise中各种加密IP,有需要的没
需要 请联系我 我也有需要,请联系我leawon947@163.com 有需要,可以帮忙破解一个vivado中使用的vdma的ip吗? 你好,我们有个项目需要xilinx的LogiCORE, Fibre Channel IPV3.5的源码,verilog或VHDL都可以(在ISE 12.1里能找到该IP),请问可否提供?94339134@qq.com 屌丝玩家基本上不会用收费的IP! AXI4-VDMAAXI4-VDMA 请问好心的楼主,有没有可以实现不定长度的FPGA 串口的接收呢?
这种该怎么搞啊? 阿豪博士 发表于 2019-9-20 16:09
请问好心的楼主,有没有可以实现不定长度的FPGA 串口的接收呢?
这种该怎么搞啊? ...
用总线空闲方式就可以了。固定时间内没有收到开始信号(下降延 )就认为接收完全。 smaret 发表于 2019-9-20 20:54
用总线空闲方式就可以了。固定时间内没有收到开始信号(下降延 )就认为接收完全。 ...
请问一下,这个固定的总线下降沿,是说的 RX 口吗? 楼主,ngc文件能解密不? jssd 发表于 2015-10-26 17:00
这些不是免费的嘛.xilinx官网有,vivado和ise有很多
给个网站
http://hamsterworks.co.nz/med ...
问下xilinx所有的加密ip文件都可以解出源文件么? 肯定是收费的 我也弄了一个针对使用
`pragma protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2019_02", key_method = "rsa"
这个key加密的ip的解密程序。
看起来xilinx用了个whitebox实现的rsa。。。
我折腾了半天也没解开private key究竟是什么
只能照着xilinx的算法实现了一份。。
回头把代码整理一下发出来 thxlp 发表于 2020-4-21 18:16
我也弄了一个针对使用
`pragma protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2019_02", key_m ...
关键是这个rsa密钥 大佬,CPRI控制器部分的,可以搞得到RTL么?价格好商量 随便生成了一个ip,你瞧瞧看能行不?
回头我整理一下代码,你可以自己解。。。
thxlp 发表于 2020-4-21 18:16
我也弄了一个针对使用
`pragma protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2019_02", key_m ...
大神`pragma protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2019_02", key_method = "rsa" 这个破解 方法 能否指点一下{:lol:} 同问楼上怎么实现 本帖最后由 thxlp 于 2020-5-9 19:21 编辑
这个是这样的。
xilinx用的加密方法是按照标准来的。
以aes-128-cbc为例(大部分都是这个加密方式),
加密的时候先生成一个16字节的session key和一个initialization vector(可以随机生成),用这个session key和initialization vector加密需要被加密的代码(代码需要用pkcs1补齐到16位),
然后再把initialization vector和加密后的结果拼接到一起,做base6 4编码,最终生成的就是data_block的部分。
所以我们能直接从data_block部分提取到initialization vector, 这一步未知的部分就是这个session key。
接下来把这个session key用xilinx自己的rsa密钥的public key加密(也是使用的pkcs1 padding)(这个public key是公开的),加密后的结果一样经过base6 4编码得到的就是key_block部分的数据。
所以我们想要解密的话就是两步走,
1.找到xilinx的private key用它解密key_block,得到session key。
2.再用session key解密data_block得到未加密的原始代码。
======================理论就是这些==============
然而不幸的时候,xilinx不知道从哪个版本开始不再使用openssl的rsa库了,不能直接提取到他的private key究竟是什么了。
我大概的分析了一下,xilinx可能是使用了一个white-box的rsa算法(所谓white-box就是把key集成到算法里面,让人没有办法从内存里面抓到key是什么),
幸运的时候,虽然xilinx加密解密的那个dll文件加了壳,但是壳很简单,虽然那个dll使用了各种反跟踪反调试的手段,但是手段都比较初期直接,
最重要的时候,他的加密解密的关键函数完全没有使用花指令也没有插入反跟踪反调试一类的代码,干干净净的。
目前我就是直接把他的加密解密函数照着实现了一遍。
=========================
如果想手动做一次的话,那就安装下面的步骤来就行。
xilinx的加密函数解密函数都在libisl_iostreams.dll这个文件里面。
首先给他脱个壳(也不需要脱完壳之后还能再运行),所以直接用个内存dump工具dump一份出来就行了。
然后分析他,找到关键的rsa加密解密的函数,然后上调试器(我习惯用windbg)。
上调试器之前要对付一下他的反调试手段,
xilinx大概的反调试手段有这么几个(这个在dump出来那个dll里面很容易就能发现),都是同一个套路,
int 3,int 2d,illegal instruction, invalid handle, access violation这些让调速器直接忽略就行。
剩下三个分别是,
用setthreadcontext来清除硬件断点,用ntqueryinformationprocess来判断debugobject,用peb->BeingDebugged来判断是否有debugger,
前面两个都到对应的win32 api上放条件断点跳执行,直接返回,最后一个一次性修改peb就行了。
剩下的就很直接了。。找到他的算法和他这个算法使用的数据照着实现一份。 感谢楼上的分享,session key只有16位?暴力穷举攻击一下,似乎也不是很大的计算量。 get500wan 发表于 2020-5-9 18:42
感谢楼上的分享,session key只有16位?暴力穷举攻击一下,似乎也不是很大的计算量。 ...
哦。笔误,16字节 thxlp 发表于 2020-5-9 18:35
这个是这样的。
xilinx用的加密方法是按照标准来的。
666,这个方法我是知道(对于做FPGA的来说 这个逆向太为难了) 。关键 有没有什么办法 能找到private key(2018之前的key 我是有的)。{:3_43:} thxlp 发表于 2020-5-9 19:21
哦。笔误,16字节
哦,对哦,aes-128。犯糊涂了…… 论坛牛人多啊。不过最好低调点,呵呵。 thxlp 发表于 2020-5-9 18:35
这个是这样的。
xilinx用的加密方法是按照标准来的。
牛逼呀,厉害厉害 牛逼啊,厉害厉害 本帖最后由 telantan 于 2020-6-29 19:04 编辑
thxlp 发表于 2020-4-28 00:48
随便生成了一个ip,你瞧瞧看能行不?
回头我整理一下代码,你可以自己解。。。
厉害 thxlp 发表于 2020-5-9 18:35
这个是这样的。
xilinx用的加密方法是按照标准来的。
大佬能不能教一下具体使用方法,新手,我现在有个xilinx_2016_05加密的system verilog文件需要破解。写了个python代码,但算出来的字符无法转回utf-8, 求指导,多谢 axi4 master slave 本帖最后由 li3962183775 于 2020-10-30 18:14 编辑
thxlp 发表于 2020-5-9 18:35
这个是这样的。
xilinx用的加密方法是按照标准来的。
大佬,可以分享一下代码吗?怎么联系你呢?这是我qq 592693565 yluo39 发表于 2020-7-16 10:18
大佬能不能教一下具体使用方法,新手,我现在有个xilinx_2016_05加密的system verilog文件需要破解。写了 ...
兄弟,搞定了吗?我也想弄一下,能不能交流交流 一直都想学fpga,不知道入门难不难? thxlp 发表于 2020-4-21 18:16
我也弄了一个针对使用
`pragma protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2019_02", key_m ...
大佬您好!能否分享一下这个ip解密程序呢?万分感谢! thxlp 发表于 2020-5-9 18:35
这个是这样的。
xilinx用的加密方法是按照标准来的。
大佬能帮帮忙把vivado的data/secureip目录下的加密代码全部解码吗? thxlp 发表于 2020-4-28 00:48
随便生成了一个ip,你瞧瞧看能行不?
回头我整理一下代码,你可以自己解。。。
能把代码发一份吗?我自己去解。感谢了。1807274232@qq.com 懂fpga又懂计算机,编程还牛 你好, 需要IP核解密, 怎么联系你? 大神,麻烦能发我一份啊,谢谢,hxp123cn@foxmail.com thxlp 发表于 2020-5-9 18:35
这个是这样的。
xilinx用的加密方法是按照标准来的。
(引用自52楼)
能交流一下么
thxlp 发表于 2020-5-9 18:35
这个是这样的。
xilinx用的加密方法是按照标准来的。
(引用自52楼)
大佬,能否将帖子https://www.amobbs.com/thread-5591963-1-1.html您说的重写的xilinx的加密函数解密函数分享给我一下啊,或者将libisl_iostreams.dll脱壳重写的详细方法分享一下也可以。 有新的进展吗 你好xilinx IP核 解密源码 怎么联系 1501316979@qq.com AXI EMC的源码 AXI4 EMC的源码 ,zya5460@163.com
页:
[1]