- 博客(45)
- 资源 (10)
- 收藏
- 关注
原创 漏洞战争笔记
漏洞战争笔记栈溢出漏洞原理防范措施常见函数堆溢出漏洞原理防范措施调试技巧整数溢出漏洞原理格式化字符串漏洞原理常见的格式化控制符总结双重释放漏洞原理释放重引用漏洞(Use After Free,UAF)原理数组越界访问漏洞原理栈溢出漏洞栈是向低地址方向生长的,而变量在栈中是向高地址方向生长的。当栈里面的变量被赋予的值超过其最大分配缓冲区的大小时,就会覆盖前面push到栈里的返回地址,导致函数在返回时发生错误,这就是栈溢出。原理栈溢出属于缓冲区溢出的一种,有时也称作堆栈溢出。堆栈溢出泛指栈溢出和堆溢出
2022-05-26 22:18:55
966
原创 漏洞分析笔记
加密加密前汇编代码:#include<tchar.h>int _tmain(int argc, _TCHAR* argv[]){ __asm { pushad sub esp, 0x20 jmp tag_ShellCode // [tag_Next-0x52] "GetProcAddress\0" _asm _emit(0x47)_asm _emit(0x65)_asm _emit(0x74)_asm _emit(0x50) _asm _emit(0x72)_
2022-02-22 20:19:28
224
原创 脱壳之Pediy未知加密壳
一、简单分析1.大致浏览寻找OEP地址,填充IAT的地址,获取API的地址,初步编写通用脚本①OEP②填充IAT地址③获取API地址将地址填入脚本,进行测试// 1.定义变量MOV dwOEP,0047148B MOV dwGetAPI,001E1914 MOV dwWriteIAT,001E0897 // 2. 清除环境BC // 清除所有软件断点BPHWC // 清除所有硬件断点BPMC // 清除内存断点// 3. 设置断点BPHWS dwOEP,
2021-12-29 09:39:22
500
原创 脱壳之简单加密壳
一、简单分析与解密 脱壳最重要的三步:找原始OEP,转存文件,修复文件 压缩壳按照这三步就可以完成脱壳,而加密壳因为对PE文件的信息进行了加密处理,找到OEP只是刚开始,还需要将加密之后的代码、数据进行还原才能够完成脱壳 注:遇到未知壳最通用的办法还是单步跟踪,将程序载入OD,到达OEP1.找OEP 先看代码段,查看IAT调用的opcode, 是FF15还是FF25, FF15就是VS程序,FF25就是宝蓝公司的程序。再看链接器版本,6.0,可以确定是VC6.0所以调试程序,设置a
2021-12-29 09:22:59
3416
原创 脱壳之aspack压缩壳
一般再执行Shell部分代码时,会先保存上下文环境,使用push指令(pushad/pushfd),执行Shell部分代码之后,再使用pop指令(popad/popfd)恢复环境,使堆栈平衡,故使用ESP定律进行简单脱壳。1.使用OD加载程序,发现pushad指令,判断程序已加壳。2.按下F8单步步过,使得程序走到CALL的位置,然后对ESP下断点,再将程序运行起来3.程序断下来的地方即为pop的地方4.F8单步步过,找到原始OEP5.在原始OEP处,右键菜单,选择用OllyDu
2021-12-29 09:01:05
1917
原创 逆向分析常用断点
拦截窗口:bp CreateWindow 创建窗口bp CreateWindowEx(A) 创建窗口bp ShowWindow 显示窗口bp UpdateWindow 更新窗口bp GetWindowText(A) 获取窗口文本拦截消息框:bp MessageBox(A) 创建消息框bp MessageBoxExA 创建消息框bp MessageBoxIndirect(A) 创建定制消息框拦截警告声:bp MessageBeep 发出系统警告声(如果没有声卡就直接驱动系统喇叭发声)拦
2021-12-19 17:10:46
836
原创 分析OD插件原理及反反调试插件的制作
1.OllyDbg,文中均简称为OD。OD的插件本质上就是一个到处有指定函数的DLL文件,这些按照指定名称、指定格式导出的函数会在OD执行到某一阶段或触发某个事件时主动调用。OD启动时会遍历指定目录下的所有DLL文件并加载,然后根据插件返回的API版本信息决定是否继续加载,如果API版本不符合则会卸载此插件。// OD 2.0 版本的插件接口#define PLUGIN_VERSION 0x02010001 // Version 2.01.0001 of plugin interface
2021-12-09 16:23:44
2113
原创 异常类Crackerme分析
1.CRACKME 界面 及OD分析初次尝试,使用OD打开,直接冲字符串我????上IDA2.使用IDA打开CRACKME程序按空格切换为Graph模式便于我们分析3.分析思路①先将比较明显的数据变更为便于我们分析的名称来源于百度百科:MSG是Windows程序中的结构体。在Windows程序中,消息是由MSG结构体来表示的。成员变量含义:第一个成员变量hwnd表示消息所属的窗口;第二个成员变量message指定了消息的标识符。第三、第四个成员变量wParam和lParam,用于指
2021-12-08 12:55:00
272
原创 WinRAR去广告实现
1.解压工具居然还有广告?2.我们可以看到我们点击压缩包之后弹出了窗口标题为WinRAR的广告窗口3.直接OD打开WinRAR.exe,右键->中文搜索引擎->智能搜索4.右键->查找,或使用快捷键Ctrl+F 或 Insert5.输入我们刚才看到的窗口标题名称6.最后找到两个WinRAR且有创建窗口的操作,我们都下断点尝试一下7.运行测试第一个断点,观察窗口弹出情况7.1 F9运行程序,程序断在了我们第一个断点的位置,此时是没有窗口弹出的(因为程序断在了创建窗
2021-12-06 21:25:23
535
原创 网易云音乐缓存文件解密
一、随便播放一首歌曲,使其产生缓存文件,并在下载设置中找到缓存目录二、打开缓存目录,并找到文件后缀名为UC的歌曲缓存文件三、将后缀名UC改为MP3四、使用010Edit软件打开我们刚修改后的MP3文件五、对文件进行异或操作,完成解密点击OK,保存文件即可,之后就可以点开我们解密后的MP3文件,使用任意播放器均可(该方法对VIP歌曲同样适用,大家可以自行尝试操作)...
2021-11-30 21:13:22
6051
原创 逆向分析-经典游戏扫雷
一、需实现的功能鼠标悬停在棋盘上时可以查出雷所在的位置一键扫雷二、分析思路可以发现版本为VC2003,根据动态库可以看到msvrt.dll,此为微软的运行时库,可判断此程序为SDK程序,且未发现MFC的动态库,虽然也有可能是使用的静态编译,但是我们观察程序大小可以发现只有100多K,这样我们几乎是可以肯定这就是一个SDK程序(可以寻找WinMain函数,函数内部可能有CreateWindowExW/A)1.动态调试(从API入手)——对函数下断点①GetWindowTextA/W,SetWi
2021-11-29 10:26:01
816
1
原创 《逆向分析实战》——随笔笔记
一、OD主界面OD调试主窗口中的工作区大致可以分为6个部分,按照从左往右、从上往下,这6部分分别是反汇编窗口、信息提示窗口、数据窗口、寄存器窗口、栈窗口和命令窗口。下面分别介绍各个窗口的用法。反汇编窗口:该窗口用于显示反汇编代码,调试分析程序主要在这个窗口中进行,这也是进行调试分析的主要工作窗口。信息提示窗口:该窗口用于显示与反汇编窗口中上下文环境相关的内存、寄存器或跳转来源、调用来源等信息。数据窗口:该窗口用于以多种格式显示内存中的内容,可使用的格式有Hex、文本、短型、长型、浮点、地址和反汇
2021-11-26 16:50:48
2911
原创 CrackMe练习
一、Serial/Name1.先尝试第一个2.随便输入一个name和serial测试一下3.然后我们继续测试一下输入正确的serial成功了4.然后我们测试别的值会不会影响结果结果发现serial发生了改变,说明这里serial并不是固定的,那我们就需要找一下他改变的原因和位置看到这里拿了我们输入的name的值做了算术操作反推一下我们发现的操作顺序,最终得到的serial中间的数字为4100,十六进制时为0x1004,再反推自增一倍即乘2的操作,得到802,由于乘了29,
2021-11-26 15:21:45
182
原创 《汇编语言(第3版) 》——随笔笔记
汇编条件跳转指令助记符标志位说明JZ/JEZF=1等于0/相等JNZ/JNEZF=0不等于0/不相等JSSF=1符号为负JNSSF=0符号为正JP/JPEPF=1"1"的个数为偶JNP/JPOPF=0"1"的个数为奇JOOF=1溢出JNOOF=0无溢出JC/JB/JNAECF=1进位/小于JNC/JNB/JAECF=1无进位/大于等于JBE/JNACF=1或ZF=1小于等于J
2021-11-25 15:15:46
212
原创 《REVERSING:逆向工程揭密》——随笔笔记
助记符标志位说明JZ/JEZF=1等于0/相等JNZ/JNEZF=0不等于0/不相等JSSF=1符号为负JNSSF=0符号为正JP/JPEPF=1"1"的个数为偶JNP/JPOPF=0"1"的个数为奇JOOF=1溢出JNOOF=0无溢出JC/JB/JNAECF=1进位/小于JNC/JNB/JAECF=1无进位/大于等于JBE/JNACF=1或ZF=1小于等于JNBE/JACF...
2021-11-25 15:14:19
889
1
原创 软件逆向练习--Reverse
一、Reverse000.exe1.使用OD打开Reverse000.exe2.右键选择中文搜索引擎->智能搜索3.双击please input password:跟进去4.此处为明文密码,直接就能找到密码为: i love this game(i前面有个空格)二、Reverse001.exe1.Ctrl+F9运行到输入的位置,之后随便输入一个密码测试一下2.第一个数字会与0x32进行比较,之后JE跳转,然后我们跟着JE看看下面的代码3.跟下来发现下面又有一个CMP,其实
2021-11-22 11:32:09
1051
2
原创 VS编译错误 #error Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version
VS编译错误#error Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]问题解决方案出现错误截图:解决方案:1.将配置属性->高级->MFC的使用,更改为 在共享DLL中使用MFC2.将配置属性->C/C+±>代码生成->运行库,更改为 多线程调试
2021-10-18 19:11:30
930
原创 Windows编程-磁盘查看器
磁盘查看器可查看盘符、标题、文件系统、总空间、可用空间、概述内容。1.新建windows项目2.在源文件夹下新建.cpp文件3.在资源文件夹下添加资源 Dialog4.添加List Control工具,并将属性->试图设置为Report5.代码部分#include<windows.h>#include<tchar.h>#include<stdio.h>#include<CommCtrl.h>#include<win
2021-10-17 18:29:29
168
原创 DLL(动态链接库)的基本使用及def文件无效问题
首先创建一个DLL项目在.cpp文件中随便写一个函数void fun1(){ printf("我是fun1");}在.h文件中写入声明void fun1();在工程目录下添加def模块【这里一定要注意是选择模块,添加def文件】在def模块文件中写入以下内容LIBRARYEXPORTSfun1 @ 1在解决方案下新建一个控制台项目在新建的控制台项目中写入以下内容int main(){ fun1(); system("pause");..
2021-10-15 15:48:10
1815
1
原创 数据结构与算法笔记
1.数据结构的由来2.基本概念及术语数据:数据项数据元素数据对象3.逻辑结构与物理结构逻辑结构:数据对象中数据元素之间的相互关系集合结构:数据元素除了同属于一个集合外,他们之间没有其他关系线性结构:数据元素之间是一对一的关系树结构:数据元素之间存在一种一对多的层次关系图结构:数据元素之间是多对多的关系物理结构:数据在计算机中的存储形式顺序存储结构:把数据元素放在连续的存储单元里链式存储结构:把数据元素放到任意存储单元里,数据元素与数据元素之间并不直接相连,而是前一个元素
2021-09-22 09:48:15
194
原创 CPP回顾笔记
一、C 回顾1.面向对象是相对于面向过程更高级额一种编程思想类:同一类对象的概述(人类)。举例 class CHuman;对象:一个具体的实体(李白)。举例 Chuman objLiBai;clas CHuman{public://公有类,谁都可以用void Fun(int nNum){m_nNum = nNum;}protected://保护类,自己家人可以用private://私有类,自己可以用int m_nNum;};2.与结构体的区别区别:①默认的访问权限,类默认是私
2021-09-20 11:59:47
162
原创 C基础笔记(简概)
基础知识:计算机五大主要部件:输入设备,输出设备,运算器,存储器,控制器。RAM:内存 ROM:硬盘编程语言三大类:机器语言 汇编语言 高级语言一、运行VS20191.编译+调试运行快捷键:F5编译程序+调试运行程序2.编译+直接运行快捷键:ctrl+F53.F10:单步步过F11:单步步入二、原码,反码,补码正数:三码合一,或者正数不区分这些负数:反码 是原码 最高位不变,其他位取反补码 反码**+1**三、预处理,库函数,关键字,注释,语句,main
2021-09-15 16:32:09
236
原创 PTA乙级基础
PTA乙级基础1001 害死人不偿命的(3n+1)猜想 (15 分)卡拉兹(Callatz)猜想:对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……我们今天的题目
2021-09-14 19:06:53
226
原创 《计算机网络》考查范围
知识点一、计算机网络基础知识1. 计算机网络体系结构基本概念2. TCP/IP 分层模型的层次结构(网络接口层、网际层、 传输层、应用层)及协议集3. OSI 与 TCP/IP 体系结构的比较4. 计算机网络性能指标及其计算知识点二、网络互联技术1. 传输介质的分类及特点2. 常用网络链接设备3. 路由器的功能和作用4. 交换机的功能和作用5. IP 报文首部格式6. 划分子网和构造超网7. IP 地址与 IP 寻址(IP 地址、IP
2020-07-31 19:56:02
269
转载 《需求工程--软件建模与分析》笔记
第一部分:绪论软件的发展经历了以“机器”“应用”“企业”为中心的三个阶段。这也是软件从一开始的新型项目到逐渐完整的一个制作体系形成的过程。其中关于需求规格说明和需求管理的缺陷是软件开发中最常见的两类重要问题。而导致需求问题的原因中,未能很好的理解和掌握。应用型软件的模拟特性以及由此而产生的一系列影响的要求。软件可以分为三种类别:面向专业用户的纯工具型软件、面向普通用户的纯工具型软件和应用型软件。应用型软件正确的工作基础是具有包括目的性、正确性和显示可理解性的模拟性。需求问题的具体原因有非技术性和社会性
2020-06-17 19:41:10
663
原创 JS setTimeout倒计时
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <input type="button" id="btn" value="倒计时开始"></input> <script> var wait=5; function
2020-05-29 21:10:33
509
原创 操作系统——状态转换图
进程的基本状态:进程以走走停停的方式运行,在其生命周期中可呈现多种状态:进程的就绪(Ready)状态指进程已经获得除CPU以外的所有所需系统资源,一旦获得CPU便可以立即执行,即进程已经处于准备好运行的状态。多个处于就绪状态的进程按照一定的优先级策略,排成一个就绪队列。进程的执行(Running)状态当就绪的进程获得CPU后,该进程就处于一种正在执行的状态,对单 处理机系统而言,只会...
2020-03-26 17:53:52
1767
原创 操作系统——前趋图实例
题目:试画出下面6条语句的前趋图,描述其前趋关系:M_1:a=3x2+y3+6zM_2:b=5k-8p^2 +0.36qM_3:c=8f+6M_4:d=3a+6b-2cM_5:e=2c+5dM_6:g=e-6M_1、M_2、M_3可以并发执行,彼此互不依赖M_4必须在a、b、c被赋值后方能执行M_5必须在M_4之后执行M_6必须在M_5之后执行...
2020-03-26 17:49:15
6057
原创 操作系统的基本特征、区别及功能
一、简述操作系统的基本特征。操作系统的四个基本特征:并发,共享,异步,虚拟。并发:是指两个或多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行着的程序,因此它应该具有处理和调度多个程序同时执行的能力。在这种多道程序环境下,一段时间内,宏观上有多个程序在同时运行,而每一时刻,单处理器环境下实际仅能有一道程序执行,故微观上这些程序还是在分时地交替执行。操作系统的并发性是...
2020-03-26 17:45:51
6460
1
原创 软件设计——单例模式应用
//方法1、利用构造函数或单例初始化函数,实现数据库的连接2、提供通用查询函数(接受SELECT操作)3、提供通用的插入函数(接受INSERT操作)4、提供通用的修改函数(接受UPDATE操作)5、提供通用的删除函数(接受DELETE操作)6、利用析构函数或单例销毁函数,实现数据库的关闭(JAVA使用 finalize)public class JDBCDemo { public ...
2020-03-26 17:29:49
191
原创 软件设计——简单工厂
一、理解简单工厂模式,根据UML图写出通用代码解题思路:1.2.3.4.二、现假设要开发一种画图程序,该画图程序拥有不同粗细的笔,能利用不同粗细的笔画出不同的形状,这里假设笔的粗细度分为:12MM, 10MM, 8MM, 6MM,假设可绘制的形状为:三角形,圆形,矩形,星形,请利用简单工厂设计并开发该画图程序,给出UML图和原型代码解题思路:1.2.3.4...
2020-03-15 19:17:55
197
原创 Cookie四种范围对象作用域
一、pageContext JSP页面容器pageContext.jsp<% pageContext.setAttribute("hello", "word"); request.getRequestDispatcher("pc1.jsp").forward(request, response); %> <%=pageContext.getAt...
2020-03-15 19:04:25
588
原创 实现和测试session功能
一、Session共享问题login.jsp<form action="check.jsp" method="post"> 用户名:<input type="text" name="uname"/><br/> 密码:<input type="password" name="upwd"/><br/> <i...
2020-03-05 18:04:41
251
基于MFC安全卫士C版功能实现
2021-11-18
ASP.NET美食网站.rar
2020-01-11
基于ASP.NET美食网站.rar
2019-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人