
安全编程
文章平均质量分 55
bcbobo21cn
具有多年开发经验;
展开
-
了解蓝劫攻击
蓝劫攻击,也称为永恒之蓝攻击,是利用蓝牙相关协议软件漏洞进行资料窃取;原创 2024-09-18 23:46:22 · 230 阅读 · 0 评论 -
ZwQuerySystemInformation函数学习
Windows任务管理器枚举进程信息是通过NtQuerySystemInformation函数,NtQuerySystemInformation又通过ZwQuerySystemInformation;转载 2024-06-17 14:25:59 · 319 阅读 · 0 评论 -
了解VS安全编译选项GS
针对缓冲区溢出时覆盖函数返回地址这一特征,微软在编译程序时使用了安全编译选项-GS;原创 2024-05-29 13:15:16 · 513 阅读 · 0 评论 -
了解CAST加密算法
CAST算法是在AES算法的海选中出现的一种算法;转载 2024-05-23 12:36:15 · 397 阅读 · 0 评论 -
数字签名学习
数字签名使用私钥;原创 2024-04-29 00:03:58 · 442 阅读 · 0 评论 -
初步了解Windows作业对象
Windows提供了一个作业(job)内核对象,它允许你将进程组合在一起;原创 2024-04-08 23:06:25 · 153 阅读 · 0 评论 -
Windows创建远程线程学习
CreateRemoteThread是一个Windows API函数,它能够创建一个在其它进程地址空间中运行的线程;原创 2024-04-04 20:15:32 · 224 阅读 · 0 评论 -
设置win32程序的窗口过程为自定义的窗口过程
win32 SetWindowLong函数用来改变指定窗口的属性;原创 2024-04-04 00:26:41 · 163 阅读 · 0 评论 -
sql注入猜测字段数的基本方法
sql order by 可以根据列名,或数字指定第几个字段排序;原创 2024-02-16 23:35:08 · 741 阅读 · 0 评论 -
DES算法子密钥的生成过程
DES子密钥的生成过程为:64位密钥输入,PC1置换,分成2个28位,循环左移,得到一个56位,PC2置换,得到48位子密钥ki;原创 2023-09-21 05:34:21 · 1706 阅读 · 0 评论 -
了解椭圆曲线和国密SM2算法
椭圆曲线并不是一个椭圆,只是它的方程和计算椭圆周长的方程很相似;转载 2023-09-17 04:58:23 · 252 阅读 · 0 评论 -
初次尝试使用IDAPro修改程序控制流程
先用VC6写一个简单程序;1原创 2021-06-06 07:04:07 · 4262 阅读 · 1 评论 -
VC++环境OpenSSL简单编程入门
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。下载 Win32OpenSSL-1_0_1.exe 安装;开始安装;完成;似乎是提示要支付10美元;在VC6添加如下目录;从 工具-选项 菜单调出选项对话框;库目录;然后来编写一个大数乘法的程序看一下;大数相乘(Multiplic原创 2021-05-01 07:28:53 · 559 阅读 · 2 评论 -
Windows下ASLR机制(地址随机化)- 概念、PE操作、VS相关选项
1 ASLR机制 Address Space Layout Randomization=地址空间布局随机化; 是一种针对缓冲区溢出的安全保护技术; 没有ASLR时,每次进程执行,加载到内容中,代码所处堆栈stack的位置都是相同的,容易被破解; 如果开启了ASLR,操作系统加载器会针对基地址再去加上一个随机生成的偏移地址,然后再去加载程序模块,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度。 地址随机化需要程序自身和操作系统的双重支持...原创 2021-03-22 02:25:35 · 3297 阅读 · 0 评论 -
PE文件重定位概念学习
PE文件基址重定位,Base Relocation。程序编译时每个模块有一个优先加载地址ImageBase,这个值是连接器给出的;因此连接器生成的指令中的地址是在假设模块被 加载到ImageBase前提之下生成的;那么一旦程序没有将模块加载到ImageBase时,那么程序中 的指令地址就需要重新定位。这是重定位的基本概念。基址重定位项,加载器就是利用它来知道模块是否按预期的 位置加载,哪些指令是需要修改的。加载器也是通过数据目录来定位【基址重定位项】,【基址重定位项】被包装 为一系列连续区段,每原创 2021-03-21 00:41:53 · 399 阅读 · 0 评论 -
PE文件结构 - 数据目录表学习
数据目录表,是一个结构体数组。数组里的每个元素对应一个数据表。通常有16个。数组每个元素都是一个结构体,结构体如下typedef struct _IMAGE_DATA_DIRECTORY{DWORD VirtualAddress;// 数据表的起始虚拟地址DWORD Size;// 数据表大小}IMAGE_DATA_DIRECTORY,*IMAGE_DATA_DIRECTORY16个数据表依次如下: 导出表、导入表、资源表、异常处理表、安全表、...原创 2021-03-20 21:54:13 · 2055 阅读 · 2 评论 -
使用程序判断一个文件是否是有效的PE文件
判断一个文件是否为有效的PE文件,判断2个字段: DOS头的e_magic字段是否为0x5A4D; NT头的Signature字段是否为0x00004550;若都是的话则是一个有效的PE文件;VC6,单文档工程;void CIspeView::OnDraw(CDC* pDC){ CIspeDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here...原创 2021-03-20 19:56:11 · 1168 阅读 · 0 评论 -
PE文件结构 - NT头学习
PE文件基本结构如下;学习一下NT头;NT头,包含一个4字节的Signature,以及两个结构体IMAGE_FILE_HEADER(文件头)和IMAGE_OPTIONAL_HEADER(扩展头)。NT头:Signature,文件头,扩展头;其定义如下; 这个是微软定义的;typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_H...原创 2021-03-20 19:17:26 · 1032 阅读 · 0 评论 -
windows令牌学习
访问令牌访问令牌(Access Tokens)是Windows操作系统安全性的一个概念。当用户登陆时,系统创建一个访问令牌,里面包含登录进程返回的SID和由本地安全策略分配给用户和用户的安全组的特权列表。系统使用令牌控制用户可以访问哪些安全对象,并控制用户执行相关系统操作的能力。有两种令牌:主令牌和模拟令牌。主令牌是由windows内核创建并分配给进程的默认访问令牌,每一个进程有一个主令牌,它描述了与当前进程相关的用户帐户的安全上下文。如果用sysinternal工具logonsession转载 2021-03-19 19:15:15 · 1323 阅读 · 0 评论 -
混淆工具Dotfuscator基本使用
Dotfuscator是dnet程序混淆工具;混淆,就是搞乱代码,代码功能完全不变;这样反汇编以后难以阅读;以保护自己的知识产权;此工具是微软提供的;可以从VS安装;也可以单独下安装包;安装完;写一个最简单winform程序;namespace test2{ public partial class Form1 : Form { public Form1() { InitializeComponent();原创 2021-01-08 15:03:36 · 2534 阅读 · 0 评论 -
VC++ CryptoAPI基本编程
作为一部分 Microsoft Windows 提供的应用程序编程接口 (API),CryptoAPI 提供了一组函数。这些函数允许应用程序在对用户的敏感私钥数据提供保护时,以灵活的方式对数据进行加密或数字签名。实际的加密操作是由称为加密服务提供程序 (CSP) 的独立模块执行。下面来看一下微软CryptoAPI的最基本使用;Win7, VC6;新建一个单文档工程;名为cryptdemo;视图类cpp文件包含 #include <wincrypt.h>;CryptoAPI编程第一步是连原创 2020-12-19 02:27:08 · 771 阅读 · 1 评论 -
Windows PatchGuard学习
打开Win64AST工具,看一下 Rootkit Functions 里面,有些什么功能;rootkit,肯定是些很底层的功能,和安全相关;看下有一项 禁止PatchGuard;PatchGuard是什么,禁止了会如何?下面来学习;1 PatchGuardPatchGuard是Windows Vista的内核保护系统,防止任何非授权软件试图“修改”Windows内核,也就是说,Vista内核的新型金钟罩。作用是:有效防止内核模式驱动改动PatchGuard为Windows Vis.原创 2020-10-23 20:30:43 · 3225 阅读 · 0 评论 -
内核钩子学习
如何建立内核级钩子控制操作系统实现程序隐身我们知道,应用程序总是离不开系统内核所提供的服务,比如它要使用内存的时候,只要跟操作系统申请就行了,而不用自己操心哪里有空闲的内存空间等问题,实际上,这些问题是由操作系统的内核来代劳的。站在黑客的角度讲,如果能够控制内核,实际上就是控制了内核之上的各种应用程序。本文将向您介绍如何建立内核级钩子来控制操作系统向上提供的各种低级功能。有了内核级钩子,我们不但能够控制、监视其他程序并过滤有关数据,还能用其实现Rootkit本身及其它程序的隐形。本文首先回顾系统调用转载 2020-05-10 10:22:07 · 952 阅读 · 0 评论 -
VC++中Depends工具的使用和DLL函数的动态调用方式示例
VC++中Depends工具;Depends用来显示与一个可执行文件(exe或者dll)相关的依赖项(动态链接库dll),以及该exe或dll引用了这些dll中的哪些接口,同时也可以看到每个被依赖的dll中的所有导出的函数接口。在VC6位于如下目录;加载一个系统dll查看一下;出现下图错误提示;大致说...加载失败...循环依赖...;因为此dll又调用了其它dll;左上角是D...原创 2020-03-21 00:57:09 · 1597 阅读 · 0 评论 -
花指令入门操作实践
根据逆向相关资料;下面有2段ASM代码;1;start_: xor eax, eax test eax, eax jz label1 jnz label1 db 0E8h ;垃圾指令label1: xor eax, 3 add eax, 4 xor eax, 5 ret2;start_: xo...原创 2020-03-17 23:54:01 · 1226 阅读 · 0 评论 -
UPX命令行压缩、反汇编动画进入、OllyDbg搜索命令功能
使用的示例是《Windows程序设计》第五版第一章的HelloMsg.exe;一 UPX命令行压缩下载upx.sourceforge.net/download/upx304w.zipupx是一个可执行文件压缩工具;upx -o HelloMsg_upx.exe HelloMsg.exe-O,输出压缩文件,不带其他参数;只打 upx ,查看帮助;压缩以后...原创 2020-03-16 20:01:10 · 1193 阅读 · 0 评论 -
反汇编基础、OllyDbg简介和界面、基本操作、初级TraceMe练习
以下使用的练习示例是《Windows程序设计》第五版第一章的HelloMsg.exe;一 反汇编基础1 字节顺序字节存储顺序 和CPU有关;微处理器的存放顺序有正序(Big-Endian),逆序(Little-Endian);Intel逆序,Power-PC正序; 正序:高位字节存入低地址,低位字节存入高地址; 逆序:反之;十进制7869,十六...原创 2020-03-14 20:00:35 · 5377 阅读 · 0 评论 -
HIEW的初步使用
有两种类型的反汇编器,批反汇编器和交互式反汇编器。批反汇编器基于所选取的设置自动分析代码。对于交互式反汇编器,用户可以控制整个反汇编过程。Sourcer是批反汇编器的代表。交互式反汇编器包括IDA Pro和HIEW。HIEW是最简单的交互式反汇编器。先找个试验程序;将试验程序拷贝到Hiew目录;进入命令行;装载试验程序;出现下图界面;然后敲2次回车;...原创 2020-03-08 22:44:16 · 1975 阅读 · 0 评论 -
壳的概念、LordPE的使用、C#读取PE文件初步
参阅 加密与解密 第三版;13.1;13.2; 有加壳,必有脱壳。 壳的加载过程 1 保存入口参数 加壳程序初始化时保存各寄存器的值,外壳执行完毕,再恢复各寄存器内容,最后再跳到原程序执行; 2 获取壳自己所需要使用的API地址 通过LoadLibrary或LoadLibraryEx将DLL文件映像映射到调用进程的地址空间中;然后...原创 2020-03-05 00:43:37 · 4959 阅读 · 0 评论 -
序列号明码比较的反汇编代码以及注册机的初步使用
参照 加密与解密 第三版,5.1.3、5.1.4节;序列号明码比较的反汇编代码形式如下;形式1:寄存器直接比较mov eax []mov ebx []cmp eax, ebxjz(jnz) xxxx eax,ebx,放的是直接比较的两个数;形式2:函数比较1mov eax []mov ebx []call xxxxxxxx ;比较函数,可以是API函数,...原创 2020-03-04 01:57:40 · 764 阅读 · 0 评论 -
破解时的数据约束性和winhex操作失败
破解时的数据约束性 此概念是+ORC提出的,只限于用明文比较注册码的情况。在大多数序列号保护的程序中,真正在注册码会于某个时刻出现在内存中,它出现的位置是不定的,但多数情况它会在一个范围之内,即存放用户输入序列号的内存地址正负90h的范围。其依据是,加密者在编程时经常要留意保护功能是否工作,从他的视角,他常需要在同一个Watch窗口能看到用户输入结果和真正密码,这二者会共同位于一个小的堆栈...原创 2020-03-03 23:56:30 · 818 阅读 · 0 评论 -
记一次内核模块查看 - 初步通过文件厂商判断有无可疑内核模块
现在怀疑有人远程连接我的电脑;可能是专业厂家提供的服务;该程序可能是一个内核模块;下面尝试用PowerTool查看一个内核模块有没有什么直接可见的异常;启动程序以后此工具自己释放了一个驱动,就是这个.sys文件;然后此工具自己启动了;我记得以前使用这软件,它好像要加载驱动模块,杀软会拦截;这次没有;估计它俩谈好了;看内核模块栏;底部自己提示,可疑驱动:0;看上去没什么异常;最...原创 2020-01-20 22:29:09 · 725 阅读 · 0 评论 -
直接修改PE文件头PE标识字段的实验
PE是Microsoft为了让程序在Windows上可移植而做的一种文件格式规定。Windows在执行exe程序的时候,PE文件加载器会按照约定加载exe程序,所以程序就正常地运行起来了。比如像EXE,DLL,SYS这种格式的文件就是PE格式文件。根据PE文件结构知识;PE头 IMAGE_NT_HEADER 的字段,IMAGE_NT_HEADER.Signature,偏移 ...原创 2019-06-21 00:32:47 · 2100 阅读 · 0 评论 -
DOTNET防止反编译
DOTNET防止反编译目录第一部分 相关理论一 防止反编译概述二 DOTNET编译原理简介三 被反编译的后果四 保护方案分类第二部分 实践一 Net强名称工具SN.EXE二 使用Dotfuscator三 Net加壳与脱壳第三部分 推荐方案第一部分 相关理论一.DOTNET防止反编译概述 作为商用程序,C#如同 java一样,很容易被反编译。甚至VS...原创 2019-05-23 17:43:21 · 3189 阅读 · 1 评论 -
DES算法基本原理
DES算法基本原理DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准。DES是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文组和56位的密钥按位替代或交换的方法形成密文组。步骤...原创 2019-02-22 00:42:57 · 5228 阅读 · 0 评论 -
DLL注入学习总结
dll注入所谓DLL[1] 注入就是将一个DLL放进某个进程的地址空间里,让它成为那个进程的一部分。要实现DLL注入,首先需要打开目标进程。中文名 dll注入 外文名 hRemoteProcess 意 义 将一个DLL放进进程的地址空间里 方 法 打开目标进程例:hRemoteProcess = OpenProcess( PROCESS_CREATE_THREAD |转载 2017-04-23 17:33:32 · 2963 阅读 · 0 评论 -
win32 调试 API 学习总结
Win32调试API原理来自《软件技术加密内幕》和chm版本不太一样 在Win32中自带了一些API函数,它们提供了相当于一般调试器的大多数功能,这些函数统称为Win32调试API(Win32 Debug API)。利用这些API可以做到加载一个程序或捆绑到一个正在运行的程序上以供调试;可以获得被调试的程序的底层信息,例如进程ID、进入地址、映像基址等;甚至可以对被调试的程序进行任意的转载 2017-04-08 15:57:33 · 1081 阅读 · 0 评论 -
宏病毒学习总结
宏病毒及其防治方法总结http://www.educity.cn/labs/563436.html 如果说宏病毒的出现曾经给反病毒软件厂商出了一道难题的话,那么电脑网络特别是因特网的出现在给人们的信息交流带来极大方便的同时,也给计算机病毒、特别是宏病毒的传播提供了空前便利的条件,今天的计算机用户比以往任何时候都更加真实地面对它的威胁。 一、宏转载 2017-04-03 09:10:40 · 5466 阅读 · 0 评论 -
解锁bios学习总结
自制解锁bios教程解锁BIOS可以方便CPU超频,内存超频开启XMP,比如海盗船DDR4 3000内存,就要在BIOS中开启XMP,才能运行在3000频率。警告:为了防止各种刷黑情况,最保险最安全的操作是:① 先刷官方版bios(下载的官方bios文件中有刷bios方法),② 在dos下用FPT命令备份官方bios,③ 按照步骤解锁备份好的bios,④ 最后再转载 2017-03-09 13:54:58 · 19250 阅读 · 0 评论 -
反汇编要点学习
反汇编 IDAPro IDA Pro 能编译多种文件格式,支持许多处理器类型。 它可以轻松地处理Java和.NET虚拟机字节码。 支持宏,插件,脚本语言。 提供的集成调试器,能够同时支持在MS-DOS、Windows与Linux平台上的调试工作。 能够借助于标准库函数的签名来识别函数名。反汇编 解包器(Unpacker) 大多数程序倾向于以打包(或者添加保护机制转载 2017-01-10 10:51:00 · 564 阅读 · 0 评论