自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 暑期实习准备——牛客Verilog刷题(完结)

暑期实习和秋招准备——Verilog手撕代码

2023-03-01 15:27:24 3788

原创 Spectre Attacks: Exploiting Speculative Execution. 2019

Spectre Attacks: Exploiting Speculative Execution来源梳理摘要I INTRODUCTIONA. Our resultB. Our TechniquesVariant 1: Exploiting Conditional BranchesVariant 2: Exploiting Indirect BranchesOther VariantsC. Targeted Hardware and Current StatusII. BACKGROUNDA. Out-of

2022-03-18 18:07:24 3661

原创 Spectre V2 理论与实践

检测系统是否存在Spectre相关漏洞环境: VMWare Ubuntu18.04使用spectre-meltdown-checker程序进行检测:./spectre-meltdown-checker.sh根据参考[1]中的方法禁用spectre的补丁://修改内核启动参数gedit /etc/default/grub//在 GRUB_CMDLINE_LINUX= 此行最后加入下面的参数://noibrs noibpb nopti nospectre_v2 nospectre_v1 l1t

2022-03-18 18:04:01 7042 1

原创 Chipyard BOOM环境搭建

安装chipyardgit clone https://github.com/ucb-bar/chipyard.git./scripts/init-submodules-no-riscv-tools.sh./scripts/build-toolchains.sh riscv-tools # for a normal risc-v toolchainsource ./env.sh安装Rocket-chip generatorgit clone https://github.com/ucb-ba

2022-03-17 20:37:21 8915 40

原创 Spectre V1理论与实践

检测系统是否存在Spectre相关漏洞使用spectre-meltdown-checker程序进行检测:git clone https://github.com/speed47/spectre-meltdown-checker.gitcd spectre-meltdown-checker./spectre-meltdown-checker.sh结果如下:对于Spectre V1:边界检查绕过漏洞显示"不易受影响"状态,缓解措施为“用户指针消毒”。目前此类缓解措施是:使用修改过的编译器重新

2022-03-13 23:12:46 5392

原创 Verilog学习笔记——入门

Verilog学习笔记01 基本逻辑门代码设计与仿真Veriog基本逻辑门代码结构——以一位反相器为例ModelSim仿真基本流程02 组合逻辑代码设计与仿真——多路选择器二选一逻辑——assign问号冒号语句、always语句块多路选择逻辑——case语句03组合逻辑代码设计与仿真——补码转换和七段译码补码转换七段数码管译码04 时序逻辑代码设计和仿真——计数器和伪随机码发生器计数器4级伪随机码发生器05 时序逻辑代码设计和仿真——秒计数器秒计数器数码管0-9秒循环显示数码管0-59秒循环显示06 时序逻

2022-02-16 01:56:58 2357

原创 RISC-V BOOM核学习

来源:RISC-V BOOM documentationRISC-V BOOM核学习The Berkeley Out-of-Oder MachineINTRODUCTIONRV64GCFig. 1 Detailed BOOM Pipeline. ’s denote where the core can be configured.The BOOM PiplineFig. 2 Simplified BOOM Pipeline with StagesBOOM为10级流水线,实际实现为7级:(

2022-02-14 01:11:45 6674

原创 Qt学习笔记

Qt学习笔记Qt教程,Qt5编程入门教程(非常详细) (biancheng.net)B站视频:最新QT从入门到实战完整版——传智教育Qt帮助文档路径:E:\Qt\Qt5.9.9\5.9.9\mingw53_32\bin assistant.exe1.1 分析第一个Qt程序main.cpp:与C++程序固定格式一致#include "IFT_platform_for_C_program.h"#include <QtWidgets/QApplication>//main中定义了QA

2022-01-29 22:45:24 1803

原创 CRYPTO代码记录

给出字符替代后的p,q,n,求解初始p,q:from itertools import combinationsfrom Crypto.Util.number import inverse, long_to_bytes, getPrime, bytes_to_longp= '0xd270df408983bd5fb1ee363ba4f6722aeb850a304bc1bce19a3946b495b73889c5f49a6275c1bb750f0d3bc2b82b83eb45eec8993d701c3f1

2021-11-29 12:01:40 263

原创 Verilog入门——AES实现

AES加密流程介绍AES为分组密码,即将待加密明文分为长度相等的组(AES中分组只能为128位,即16字字),每次加密一组数据直至全部加密完成。加密密钥长度可以为128位、192位、256位,密钥长度不同加密轮数不同。AES密钥长度分组长度加密轮数AES-1284410AES-1966412AES-2568414本文讨论的是AES-128,密钥长度128位,加密轮数10。AES加密的单位是字节,128位明文输入和128位密钥K均被分为16个字

2021-02-07 23:11:04 12872 5

原创 《逆向工程核心原理》第20章——“内嵌补丁”练习

11

2020-12-23 21:18:15 454

原创 《逆向工程核心原理》第18.19章——UPack PE文件头详细描述、UPack调试——查找EOP

UPack PE文件头详细描述UPack说明比较PE文件头重叠文件头IMAGE_FILE_HEADER.SizeOfOptionalHeaderIMAGE_OPTIONAL_HEADER.NumberOfRvaAndSizesIMAGE_SECTION_HEADER重叠节区RVA to RAW导入表(IMAGE_IMPORT_DESCRIPTOR array)导入地址表INT与IAT到底有什么区别呢?UPack调试——查找OEP解码循环UPack说明UPack是一种运行时压缩器,其特点是用一种非常独特

2020-12-21 20:56:10 800 6

原创 《逆向工程核心原理》第16.17章——基址重定位

基址重定位PE重定位PE重定位时执行的操作PE重定位操作原理基址重定位表IMAGE_BASE_RELOCATION结构体基址重定位表的分析方法练习PE重定位向进程的虚拟内存中加载PE文件时,文件会被加载到PE头的ImageBase所指的地址处,该位置存在被占用可能,此时PE装载器会将其加载到其他未被占用的空间。PE重定位指PE文件无法加载到ImageBase所指位置,而是加载到其他地址时发生的一系列行为。创建进城后,EXE文件会首先加载到内存,所以EXE文件无需考虑重定位问题。Windows V

2020-12-18 01:09:54 786 1

原创 ReversingWithLena——03. Basic nag removal + header problems

03. Basic nag removal + header problems实验要求消除掉多余的nags。查看文件可以看到比较eax与0,不相等则会弹出第一个nags。EAX是函数GetModuleHandleA()的返回值,该函数的功能是获取ImageBase。因此EAX一定不等于0。可以想到的修改方法有:修改cmp语句为cmp eax,eax修改条件跳转语句je为jne覆盖跳转部分为NOP这里Lena的视频中提到了一个新的思路:修改可执行文件EP。选中Dump区域,点击M。双

2020-12-16 21:26:46 187

原创 ReversingWithLena——02. Keyfiling the reverseme + assembler

02. Keyfiling the reverseme + assembler02与01相差不大。重复01步骤,可以发现程序执行流程仍然为读取已存在keyfile.dat并判断是否符合要求。新建文件如下:OD执行程序,可以看到已经成功读取字符串同时也可以看到字符串长度为A。继续执行,可以看到一系列判断:同样的上述指令要求获取字符串长度不少于10h同时字母‘G’个数不少于8个。输入符合要求的字符串即破成功。...

2020-12-14 20:22:14 184

原创 《逆向工程核心原理》第14.15章——运行时压缩、调试UPX压缩的notepad.ex程序

运行时压缩数据压缩运行时压缩器压缩器保护器运行时压缩测试——notepad.exe为例比较notepad.exe与notepad_upx.exe文件调试UPX压缩的notepad.exe程序notepad.exe的EP代码数据压缩无损压缩(Lossless Data Compression):压缩的文件能够100%恢复。如Run-Length、Lempel-Ziv、Huffman。有损压缩(Loss Data Compression):压缩的文件不能恢复原状,会损失一定信息,常用于多媒体文件。运

2020-12-14 19:52:24 870

原创 《逆向工程核心原理》第13章——PE文件格式(2):IAT与EAT

PE文件格式(2):IAT与EATIATDLLIMAGE_IMPORT_DESCRIPTOR使用notepad.exe练习1 库名称(Name)2 OriginalFirstThunk-INT3 IMAGE_IMPORT_BY_NAME4 FirstThunk-IATEATIATIAT:导入地址表(Import Adress Table)。简而言之IAT是一种表格,用来记录程序正在使用哪些库中的哪些函数。DLL16位DOS时代调用函数时,会从C库中读取相应函数的二进制代码并将其插入应用程序。而Wi

2020-12-08 21:24:28 1964

原创 《逆向工程核心原理》第13章——PE文件格式(1):PE头

介绍本章将详细讲解WIndows操作系统的PE(Portable Executable)文件格式相关知识。同时整理有关进程,内存,DLL等的内容。PE是指32位可执行文件,也称PE32。64位可执行文件称为PE+或PE32+,是PE文件的一种扩展形式。PE文件格式PE文件种类如下:种类主扩展名可执行系列exe scr库系列dll ocx cpl drv驱动程序系列sys vxd对象文件系列obj严格来讲,obj文件之外的所有文件都是.

2020-12-05 15:24:16 863

原创 《逆向工程核心原理》第9.10.11.12章——函数调用约定、Tut.ReverseMel.exe

Process Explorer下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer下载后直接运行即可。介绍:Process Explorer时Windows操作系统给下最优秀的进程管理工具。其运行界面如下:画面左上侧以树结构显示当前运行的进程,右侧显示各进程的PID,CPU占有率,注册信息等。画面下方显示的是加载到所选进程中的DLL信息,或者当前选中的进程的所有对象的句柄。函数调用约定函.

2020-12-01 00:06:27 775

原创 ReversingWithLena——01. Olly + assembler + patching a basic reverseme

背景《逆向工程核心原理》第11章提到的Lena的40个crackme讲座,帮助初学者学习代码逆向分析技术。这里尝试着对学习的过程进行记录。下载地址:https://forum.tuts4you.com/files/file/1307-lenas-reversing-for-newbies/目录:01. Olly + assembler + patching a basic reverseme02. Keyfiling the reverseme + assembler03. Basic nag.

2020-11-30 19:36:07 885

原创 《逆向工程核心原理》第8章——abex‘crackme #2

运行abex’crackme #2下载地址:https://pan.baidu.com/s/1qXhyt8C运行程序:输入符合要求的name与serial,点击check:弹出wrong serial消息框。Visual Basic文件的特征abes’ crackme #2文件由Visual Basic编写而成。调试前首先了解Visual Basic文件特征。VB专用引擎VB文件使用名为MSVBVM60.dll的VB专用引擎,比如:显示消息框时,VB代码中要调用MsgBox()函数。.

2020-11-29 19:54:49 1850

原创 《逆向工程核心原理》第7章——栈帧,调试stackframe.exe

栈帧Stack Frame

2020-11-28 18:01:14 1167

原创 《逆向工程核心原理》第6章——分析abex‘ crackme#1

分析abex’ crackme#1点击abex’ crackme#1程序,运行结果如下:点击确定开始调试使用OllyDbg载入程序,可以看到程序的汇编代码。该程序的EP代码很短,因为它使用汇编语言编写的可执行文件。main()函数直接出现在EP中,简洁直观。分析代码调用MessageBoxA()函数调用GetDriveType()函数;获取C驱动器类型,这里返回值EAX=3ESI+1;EAX-1;ESI+1;ESI+1;EAX-1;比较EAX与ESI,相等则跳转40103D,不等.

2020-11-27 21:43:33 595

原创 《逆向工程核心原理》第3.4.5章——查看小端序、栈

在OllyDbg中查看小端序字节序:多字节数据在计算机内存中存放的字节顺序,主要分为小端序与大端序。小端序大端序存储低位低字节,高位高字节低位高字节,高位低字节特征逆序存储直观使用Intel X86 CPU大型UNIX服务器RISC系列CPU、网络协议使用小端序进行算术运算以及扩展/缩小数据时,效率高。测试程序:#include "windows.h"BYTE b=0x12;WORD w=0x1234;DWORD dw=0x1234567.

2020-11-27 20:23:04 328

原创 《逆向工程核心原理》第2章——逆向分析HelloWorld!程序

逆向分析Hello World!程序源程序#include "windows.h"#include "tchar.h"int _tmain(int argc,TCHAR *argv[]){ MessageBox(NULL, L"Hello World!", L"www.reversecore.com", MB_OK); return 0;}ctrl+F2 重新调试:EP(入口点)处F8单步执行,前面的复杂代码是启动函数。F7跳入函数,此处跳入401005处。.

2020-11-23 17:02:54 1884

原创 Imprecise Security: Quality and Complexity Tradeoffs for Hardware Information Flow Tracking.2016

来源W. Hu, A. Becker, A. Ardeshiri, Y . Tai, P. Ienne, D. Mu, and R. Kastner. Imprecise Security: Quality and Complexity Tradeoffs for Hardware Information Flow Tracking[C], IEEE/ACM International Conference on Computer-Aided Design (ICCAD), Article 95, Nov

2020-10-30 22:06:23 557 2

原创 Information Flow Tracking in RISC-V.2019

来源G. Shirley and F. Saqib. Information Flow Tracking in RISC-V[C], 2019 IEEE 16th International Conference on Smart Cities: Improving Quality of Life Using ICT & IoT and AI (HONET-ICT), Charlotte, NC, USA, 2019, pp. 199-200, doi: 10.1109/HONET.2019.89

2020-10-14 14:50:18 421

原创 Theoretical Analysis of Gate Level Information Flow Tracking.2010

论文信息:Jason Oberg, Wei Hu, Ali Irturk, Mohit Tiwari, Timothy Sherwood, and Ryan Kastner. Theoretical Analysis of Gate Level Information Flow Tracking, ACM/EDAC/IEEE Design Automation Conference (DAC), 244-247, Jun. 2010.梳理1.INTRODUCTIONInformation flow

2020-10-13 22:16:31 409

原创 【0day安全实验五】3.2使用跳板定位exploit

实验目的使用jmp esp指令作为“跳板”,动态定位shellcode。原理ESP寄存器中的地址总是指向系统栈且不会被溢出的数据破坏函数返回时,ESP所指的位置恰好时我们所淹没的返回地址的下一个位置实验内容获得跳板的地址编程搜索内存获得user32.dll内跳转指令jmp e...

2020-09-04 16:58:44 878

原创 【0day安全实验四】2.4代码植入

实验目的实验二、三中依此展示了淹没相邻变量与返回地址,改变函数流程的方法。本次实验展示——通过栈溢出让进程执行输入数据中植入的代码。在buffer中包含想要执行的代码,通过返回地址让程序跳转到系统栈里执行。实验内容编写C程序#include <stdio.h>#include <string.h>#include <windows.h>#include <stdlib.h>#define PASSWORD "1234567"int veri

2020-08-29 22:44:31 1415 2

原创 【0day安全实验三】2.3修改函数返回地址

实验目的通过淹没返回地址而控制程序的执行过程,从而绕过密码验证。实验内容前期尝试尝试输入19位字符串“4321432143214321432”,这样会将retn处的函数返回地址覆盖,无法跳转合法指令,从而导致程序崩溃接下来尝试覆盖返回地址并使覆盖后的返回地址为合法的可跳转的地址编写C程序#include <stdio.h>#include <string.h>#define PASSWORD "1234567"int verify_password(char *

2020-08-24 20:27:21 628

原创 【0day安全实验二】2.2修改邻接变量

实验目的研究怎样用非法的超长密码去修改buffer的邻接变量authenticated从而绕过密码验证程序。实验步骤编写C程序#include <stdio.h>#include <string.h>#define PASSWORD "1234567"int verify_password(char *password){ int authenticated; char buffer[8]; authenticated=strcmp(passw

2020-08-24 00:54:34 1034

原创 【0day安全实验一】1.4Crack小实验

环境:Win7 32位虚拟机Visual C++ 6.0工具:IDA Pro32OllyDbgLordPEUltraEdit实验步骤:编写C程序:#include <stdio.h>#include <string.h>#define PASSWORD "1234567"int verify_password(char *password){ int authenticated; authenticated=strcmp(password,

2020-08-23 00:43:41 915 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除