通过修改 PE 装载 DLL 实验
参考课件 chap06.pdf 中“通过修改PE装载DLL”一节的内容,以及课本第 5.5节的 内容,实现对notepad.exe(修復並下載Notepad.exe)的修改,使得修改后的 notepad.exe 在双击运行时,能够自动隐式装载 MyDll3.dll,并进而 将一个网页下载到本地index.html 文件。
本上机作业的目的是让大家深入理解 PE 文件中的导入表、导入地址表等关键结构及相关的功能。
本实验所使用的notepad.exe 是 Windows 7系统(最好32位版)中的可执行程序,MyDll3.dll 也仅保证在 Windows 7下能正常工作,因此,建议在 Windows 7环境(可预先安装虚拟机)下进行修改。请在虚拟机中禁用所有杀毒软件,确保修改过程不会受到杀毒软件的干扰。保证虚拟机能联网,以便DLL装载后的网页下载动作能正常完成。
下载notepad.exe可能与课本中所描述的notepad.exe版本不一致,应主要参考课件中的修改流程。
使用PEview分析PE文件,使用HxD编辑器修改PE文件。
直接使用本书所附代码编译生成 MyDll3.dll ...
KNN&DBscan&K-means实现
Python集成开发环境(IDE)
(1) Anaconda: https://www.continuum.io/ (推荐)
(2) IDLE: Python解释器默认工具
(3) PyCharm: https://www.jetbrains.com/pycharm/
(4) 实验数据集:Python的scikit-learn库中自带的鸢尾花数据集,可使用datasets.load_iris()载入。
需要描述清楚算法流程,包括加载数据、数据处理、创建模型,训练,预测,评估模型等。如果必须给出实现代码才能更好地说明问题时,也必须先有相关的文字叙述,然后才是代码,代码只是作为例证
鸢尾花数据集共收集了三类鸢尾花,即Setosa鸢尾花、Versicolour鸢尾花和Virginica鸢尾花,每一类鸢尾花收集了50条样本记录,共计150条。
数据集包括4个属性,分别为花萼的长、花萼的宽、花瓣的长和花瓣的宽。对花瓣我们可能比较熟悉,花萼是什么呢?花萼是花冠外面的绿色被叶,在花尚未开放时,保护着花蕾。四个属性的单位都是cm,属于数值变量,四个属性均不存在缺失值的情况,以下是各属性的一些统计值 ...
调用惯例
调用惯例
简要介绍
==调用惯例(Calling Conventions)==指计算机程序执行时调用函数或过程的一些约定,包括:
1.函数的参数是通过栈还是寄存器传递?
2.如果通过栈传递,顺序是怎样的,是从左至右入栈还是相反。
3.谁负责清理栈,是调用者还是被调用者?
针对这三个约定,不同的调用惯例有不同的实现,参考课本和搜索引擎,归纳如下
调用惯例
调用场合
传参方式
入栈顺序
传返回值
清理栈者
名字修饰
cdecl
Windows API
栈传参
从右至左压栈
寄存器(EAX)
调用者函数
_+函数名
stdcall
C/C++
栈传参
从右至左压栈
寄存器(EAX)
被调用者函数
_+函数名+@+参数的字节数
fastcall
GCC/Microsoft
左DWORD用ECX和EDX,剩余栈传参
从右至左压栈
寄存器(EAX)
被调用者函数
@+函数名+@+参数字节数
程序分析
函数设置
main函数
1234567891011121314#include<stdio.h>int __cdecl add1(int a, int b) ...
RSA 加密体制破译
题目摘要
赛题名称: RSA 加密体制破译
赛题描述
RSA密码算法是使用最为广泛的公钥密码体制。该体制简单且易于实现,只需要选择5个参数即可(两个素数𝑝𝑝p和𝑞𝑞q、模数𝑁=𝑝𝑞𝑁=𝑝𝑞N=pq、加密指数𝑒𝑒e和解密指数𝑑𝑑d。设𝑚为待加密消息RSA体制破译相当于已知𝑚𝑒𝑚^𝑒me modmodmod 𝑁𝑁N能否还原𝑚的数论问题。目前模数规模为1024比特的RSA算法一般情况下是安全的,但是如果参数选取不当,同样存在被破译的可能。
有人制作了一个RSA加解密软件采用的RSA体制的参数特点描述见密码背景部分)。已知该软件发送某个明文的所有参数和加密过程的全部数据(加密案例文件详见附件3-1。Alice使用该软件发送了一个通关密语,且所有加密数据已经被截获,请问能否仅从加密数据恢复该通关密语及RSA体制参数?如能请给出原文和参数,如不能请给出已恢复部分并说明剩余部分不能恢复的理由?
加密过程
原始明文
1This is a test of my RSA system.
Frame0
1A5F51EB02EA9C0CC9B96926A08A7 ...
Week 6 - Programming Assignment
Content
更好的效果PDF:pdf文章列表 | Asiv’s Blog (niceasiv.cn)
Factoring challenge #1:
Your goal in this project is to break RSA when the public modulus NNN is generated incorrectly. This should serve as yet another reminder not to implement crypto primitives yourself.
Normally, the primes that comprise an RSA modulus are generated independently of one another. But suppose a developer decides to generate the first prime ppp by choosing a random number RRR and scanning for a prime close by. The second prim ...
Adversary Agnostic Robust Deep Reinforcement Learning
主要内容
adversary agnostic manner under the PD paradigm
许多工作已经研究了将预定义的对抗性纳入训练过程,以在扰动的观察中获得更好的泛化能力。例如,Mirman等人 [8] 和Fischer等人 [9] 利用基于对抗性培训的 [10]policy distillation (PD) [11] 来获得准确而稳健的学生政策,通过从快速梯度符号方法 (FGSM) 和投影梯度下降 (PGD) 生成的对抗示例中学习,可以获得鲁棒性。最近,基于状态-对抗性马尔可夫决策过程 (SA-MDP) 的表述,Zhang等 [12] 提出了一种理论上的原则性正则化,以使政策的处方与对抗扰动保持一致,从而仍然依赖于对手。
DQN
DQN(Deep Q-Network)是深度强化学习(Deep Reinforcement Learning)的开山之作,将深度学习引入强化学习中,构建了 Perception 到 Decision 的 End-to-end 架构。
经验回放 Experience Replay
DQN 面临着几个挑战:
深度学习需要大量带标签的训练数据 ...
Log4j漏洞复现
主要内容
CVE-2021-44228 Apache Log4j漏洞复现
0x01.漏洞情况
影响范围:
Apache Log4j 2.x < 2.15.0-rc2
Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。
Spring-Boot-strater-log4j2、Apache Struts2、Apache Solr、Apache Flink、Apache Druid、ElasticSearch、Flume、Dubbo、Redis、Logstash、Kafka均受影响。
0x02.组件介绍
RIM
RMI ( Remote Method Invocation , 远程方法调用 ) 是分布式编程中的一个基本思想。实现远程方法调用的技术有很多,例如CORBA、WebService,这两种是独立于编程语言的。而Java RMI是专为Java环境设计的远程方法调用机制,远程服务器实现具体的Java方法并提供接口,客户端本地仅需根据接口类的定义,提供相应的参数即可调用远程方法并获取执行结果,使分布在不同的JVM中的对象的外表和行 ...