安全编程
文章平均质量分 57
bcbobo21cn
具有多年开发经验;
展开
-
ZwQuerySystemInformation函数学习
Windows任务管理器枚举进程信息是通过NtQuerySystemInformation函数,NtQuerySystemInformation又通过ZwQuerySystemInformation;转载 2024-06-17 14:25:59 · 50 阅读 · 0 评论 -
了解VS安全编译选项GS
针对缓冲区溢出时覆盖函数返回地址这一特征,微软在编译程序时使用了安全编译选项-GS;原创 2024-05-29 13:15:16 · 290 阅读 · 0 评论 -
了解CAST加密算法
CAST算法是在AES算法的海选中出现的一种算法;转载 2024-05-23 12:36:15 · 80 阅读 · 0 评论 -
数字签名学习
数字签名使用私钥;原创 2024-04-29 00:03:58 · 398 阅读 · 0 评论 -
初步了解Windows作业对象
Windows提供了一个作业(job)内核对象,它允许你将进程组合在一起;原创 2024-04-08 23:06:25 · 58 阅读 · 0 评论 -
Windows创建远程线程学习
CreateRemoteThread是一个Windows API函数,它能够创建一个在其它进程地址空间中运行的线程;原创 2024-04-04 20:15:32 · 110 阅读 · 0 评论 -
设置win32程序的窗口过程为自定义的窗口过程
win32 SetWindowLong函数用来改变指定窗口的属性;原创 2024-04-04 00:26:41 · 79 阅读 · 0 评论 -
sql注入猜测字段数的基本方法
sql order by 可以根据列名,或数字指定第几个字段排序;原创 2024-02-16 23:35:08 · 553 阅读 · 0 评论 -
DES算法子密钥的生成过程
DES子密钥的生成过程为:64位密钥输入,PC1置换,分成2个28位,循环左移,得到一个56位,PC2置换,得到48位子密钥ki;原创 2023-09-21 05:34:21 · 1314 阅读 · 0 评论 -
了解椭圆曲线和国密SM2算法
椭圆曲线并不是一个椭圆,只是它的方程和计算椭圆周长的方程很相似;转载 2023-09-17 04:58:23 · 159 阅读 · 0 评论 -
初次尝试使用IDAPro修改程序控制流程
先用VC6写一个简单程序;1原创 2021-06-06 07:04:07 · 3109 阅读 · 1 评论 -
VC++环境OpenSSL简单编程入门
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。下载 Win32OpenSSL-1_0_1.exe 安装;开始安装;完成;似乎是提示要支付10美元;在VC6添加如下目录;从 工具-选项 菜单调出选项对话框;库目录;然后来编写一个大数乘法的程序看一下;大数相乘(Multiplic原创 2021-05-01 07:28:53 · 514 阅读 · 2 评论 -
Windows下ASLR机制(地址随机化)- 概念、PE操作、VS相关选项
1 ASLR机制 Address Space Layout Randomization=地址空间布局随机化; 是一种针对缓冲区溢出的安全保护技术; 没有ASLR时,每次进程执行,加载到内容中,代码所处堆栈stack的位置都是相同的,容易被破解; 如果开启了ASLR,操作系统加载器会针对基地址再去加上一个随机生成的偏移地址,然后再去加载程序模块,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度。 地址随机化需要程序自身和操作系统的双重支持...原创 2021-03-22 02:25:35 · 2935 阅读 · 0 评论 -
PE文件重定位概念学习
PE文件基址重定位,Base Relocation。程序编译时每个模块有一个优先加载地址ImageBase,这个值是连接器给出的;因此连接器生成的指令中的地址是在假设模块被 加载到ImageBase前提之下生成的;那么一旦程序没有将模块加载到ImageBase时,那么程序中 的指令地址就需要重新定位。这是重定位的基本概念。基址重定位项,加载器就是利用它来知道模块是否按预期的 位置加载,哪些指令是需要修改的。加载器也是通过数据目录来定位【基址重定位项】,【基址重定位项】被包装 为一系列连续区段,每原创 2021-03-21 00:41:53 · 338 阅读 · 0 评论 -
PE文件结构 - 数据目录表学习
数据目录表,是一个结构体数组。数组里的每个元素对应一个数据表。通常有16个。数组每个元素都是一个结构体,结构体如下typedef struct _IMAGE_DATA_DIRECTORY{DWORD VirtualAddress;// 数据表的起始虚拟地址DWORD Size;// 数据表大小}IMAGE_DATA_DIRECTORY,*IMAGE_DATA_DIRECTORY16个数据表依次如下: 导出表、导入表、资源表、异常处理表、安全表、...原创 2021-03-20 21:54:13 · 1681 阅读 · 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 · 1093 阅读 · 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 · 884 阅读 · 0 评论 -
windows令牌学习
访问令牌访问令牌(Access Tokens)是Windows操作系统安全性的一个概念。当用户登陆时,系统创建一个访问令牌,里面包含登录进程返回的SID和由本地安全策略分配给用户和用户的安全组的特权列表。系统使用令牌控制用户可以访问哪些安全对象,并控制用户执行相关系统操作的能力。有两种令牌:主令牌和模拟令牌。主令牌是由windows内核创建并分配给进程的默认访问令牌,每一个进程有一个主令牌,它描述了与当前进程相关的用户帐户的安全上下文。如果用sysinternal工具logonsession转载 2021-03-19 19:15:15 · 1200 阅读 · 0 评论 -
混淆工具Dotfuscator基本使用
Dotfuscator是dnet程序混淆工具;混淆,就是搞乱代码,代码功能完全不变;这样反汇编以后难以阅读;以保护自己的知识产权;此工具是微软提供的;可以从VS安装;也可以单独下安装包;安装完;写一个最简单winform程序;namespace test2{ public partial class Form1 : Form { public Form1() { InitializeComponent();原创 2021-01-08 15:03:36 · 2329 阅读 · 0 评论 -
VC++ CryptoAPI基本编程
作为一部分 Microsoft Windows 提供的应用程序编程接口 (API),CryptoAPI 提供了一组函数。这些函数允许应用程序在对用户的敏感私钥数据提供保护时,以灵活的方式对数据进行加密或数字签名。实际的加密操作是由称为加密服务提供程序 (CSP) 的独立模块执行。下面来看一下微软CryptoAPI的最基本使用;Win7, VC6;新建一个单文档工程;名为cryptdemo;视图类cpp文件包含 #include <wincrypt.h>;CryptoAPI编程第一步是连原创 2020-12-19 02:27:08 · 696 阅读 · 1 评论 -
Windows PatchGuard学习
打开Win64AST工具,看一下 Rootkit Functions 里面,有些什么功能;rootkit,肯定是些很底层的功能,和安全相关;看下有一项 禁止PatchGuard;PatchGuard是什么,禁止了会如何?下面来学习;1 PatchGuardPatchGuard是Windows Vista的内核保护系统,防止任何非授权软件试图“修改”Windows内核,也就是说,Vista内核的新型金钟罩。作用是:有效防止内核模式驱动改动PatchGuard为Windows Vis.原创 2020-10-23 20:30:43 · 2731 阅读 · 0 评论 -
内核钩子学习
如何建立内核级钩子控制操作系统实现程序隐身我们知道,应用程序总是离不开系统内核所提供的服务,比如它要使用内存的时候,只要跟操作系统申请就行了,而不用自己操心哪里有空闲的内存空间等问题,实际上,这些问题是由操作系统的内核来代劳的。站在黑客的角度讲,如果能够控制内核,实际上就是控制了内核之上的各种应用程序。本文将向您介绍如何建立内核级钩子来控制操作系统向上提供的各种低级功能。有了内核级钩子,我们不但能够控制、监视其他程序并过滤有关数据,还能用其实现Rootkit本身及其它程序的隐形。本文首先回顾系统调用转载 2020-05-10 10:22:07 · 864 阅读 · 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 · 1472 阅读 · 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 · 1073 阅读 · 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 · 1126 阅读 · 0 评论 -
反汇编基础、OllyDbg简介和界面、基本操作、初级TraceMe练习
以下使用的练习示例是《Windows程序设计》第五版第一章的HelloMsg.exe;一 反汇编基础1 字节顺序字节存储顺序 和CPU有关;微处理器的存放顺序有正序(Big-Endian),逆序(Little-Endian);Intel逆序,Power-PC正序; 正序:高位字节存入低地址,低位字节存入高地址; 逆序:反之;十进制7869,十六...原创 2020-03-14 20:00:35 · 4386 阅读 · 0 评论 -
HIEW的初步使用
有两种类型的反汇编器,批反汇编器和交互式反汇编器。批反汇编器基于所选取的设置自动分析代码。对于交互式反汇编器,用户可以控制整个反汇编过程。Sourcer是批反汇编器的代表。交互式反汇编器包括IDA Pro和HIEW。HIEW是最简单的交互式反汇编器。先找个试验程序;将试验程序拷贝到Hiew目录;进入命令行;装载试验程序;出现下图界面;然后敲2次回车;...原创 2020-03-08 22:44:16 · 1805 阅读 · 0 评论 -
壳的概念、LordPE的使用、C#读取PE文件初步
参阅 加密与解密 第三版;13.1;13.2; 有加壳,必有脱壳。 壳的加载过程 1 保存入口参数 加壳程序初始化时保存各寄存器的值,外壳执行完毕,再恢复各寄存器内容,最后再跳到原程序执行; 2 获取壳自己所需要使用的API地址 通过LoadLibrary或LoadLibraryEx将DLL文件映像映射到调用进程的地址空间中;然后...原创 2020-03-05 00:43:37 · 4388 阅读 · 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 · 706 阅读 · 0 评论 -
破解时的数据约束性和winhex操作失败
破解时的数据约束性 此概念是+ORC提出的,只限于用明文比较注册码的情况。在大多数序列号保护的程序中,真正在注册码会于某个时刻出现在内存中,它出现的位置是不定的,但多数情况它会在一个范围之内,即存放用户输入序列号的内存地址正负90h的范围。其依据是,加密者在编程时经常要留意保护功能是否工作,从他的视角,他常需要在同一个Watch窗口能看到用户输入结果和真正密码,这二者会共同位于一个小的堆栈...原创 2020-03-03 23:56:30 · 703 阅读 · 0 评论 -
记一次内核模块查看 - 初步通过文件厂商判断有无可疑内核模块
现在怀疑有人远程连接我的电脑;可能是专业厂家提供的服务;该程序可能是一个内核模块;下面尝试用PowerTool查看一个内核模块有没有什么直接可见的异常;启动程序以后此工具自己释放了一个驱动,就是这个.sys文件;然后此工具自己启动了;我记得以前使用这软件,它好像要加载驱动模块,杀软会拦截;这次没有;估计它俩谈好了;看内核模块栏;底部自己提示,可疑驱动:0;看上去没什么异常;最...原创 2020-01-20 22:29:09 · 650 阅读 · 0 评论 -
获取kernel32.dll基址
获取kernel32.dll基址一 原理和概述找kernel32基地址的方法一般有三种:暴力搜索法、异常处理链表搜索法、PEB法。暴力搜索法是最早的动态查找kernel32基地址的方法。它的原理是: 几乎所有的win32可执行文件(pe格式文件)运行的时候都加载kernel32.dll,可执行文件进入入口点执行后esp中存放的一般是Ker转载 2016-01-03 11:00:49 · 5637 阅读 · 0 评论 -
Linux安全编程
如何编写一个Linux病毒 每个人都知道Linux没有病毒,或者类似的东西。有人进而推论认为Linux对病毒之类的东西是免疫的,因为它设计的太棒了,Macs也是如此。其实这种观点是错误的。 名为foobar的博客者在Geekzone中发表了一篇名为“5个步骤写出一个Linux病毒”的文章,文章虽然名义上是写如何制造Linux病毒的,实际却是转载 2016-01-03 13:33:52 · 1243 阅读 · 0 评论 -
hook IE 总结
请教下hook浏览器修改页面的方案最近在搞hook浏览器修改页面的东西,就是在网页上加点东西,试了下hook wininet的InternetReadFile修改普通的山寨浏览器还行,IE8就不行了,不知道大侠们有没有什么好的思路。 ie8这样的有多个进程,每个进程都得做手脚 每个我都注入了,第一次能半成功吧,第二次又正常了这是修改hao123为ha转载 2016-03-31 16:34:29 · 6335 阅读 · 0 评论 -
Windows系统漏洞学习总结
Windows系统常见漏洞分析 由于windows NT/2000操作系统的普及率和市场占有率比较高,所以很容易使它成为很多黑客攻击的目标。目前,Windows NT/2000最主要的漏洞有Unicode漏洞、.ida/.idq缓冲区溢出漏洞、Microsoft IIS CGI文件名错误解码漏洞、MSADCS RDS弱点漏洞、FrontPage服务器扩展和.Printer漏洞等等。下面笔者将转载 2016-04-01 19:00:31 · 14926 阅读 · 0 评论 -
VB程序破解
VB程序的破解思路总结、编译方式vs破解工具 比较把一个简单的VB计时器程序研究透了,对于VB破解应有较大帮助,如有错误欢迎指出。VB程序也是一个非常有趣的东西,你去看VB的主程序,是用Microsoft Visual C++ 5.0编写的,也就是说,其实里面调用的各种命令和控件,都是一段VC++的代码。还有VB运行时必须的“库”(虚拟机):msvbvm50, msvbvm60,转载 2016-04-02 16:03:34 · 7781 阅读 · 1 评论 -
C++反汇编代码分析
C++反汇编代码分析--函数调用 代码如下: #include "stdlib.h" int sum(int a,int b,int m,int n) { return a+b; } void main() { int result = sum(1,2,3,4)转载 2016-04-02 17:43:12 · 1093 阅读 · 1 评论 -
网站攻防学习总结
Web攻防系列教程之 企业网站攻防实战摘要:本文通过搭建一个真实的企业网站环境,先以攻击者的角度对目标网站进行入侵,最终得到目标网站数据库中的数据。然后对整个入侵过程进行详细分析,并修复目标网站存在的安全漏洞和弱点。这样通过对一个实例的完整分析,让读者对攻击者入侵网站的过程、以及网站安全加固都有一个直观的认识,当遭到黑客入侵时,不再感到无从下手。随着B/S架转载 2016-03-20 18:44:33 · 2605 阅读 · 0 评论 -
黑客工具总结
黑客常用工具列表大全一、扫描工具X-scan 3.1 焦点出的扫描器,国内最优秀的安全扫描软件之一!非常专业的一个扫描器! X-way 2.5 这也上一个非常不错的扫描器哦!功能非常多!使用也不难,入侵必备工具!SuperScan 3.0 强大的TCP 端口扫描器、Ping 和域名解析器! Namp 3.5 这个就厉害了,安全界人人皆知的非常有名气的转载 2016-04-06 14:58:44 · 3671 阅读 · 1 评论 -
一些常用黑客工具的初步使用
一X-scan启动,出现下述错误;在网上下一个NPPTools.dll,放到SysWOW64目录下;启动;扫描本机的结果;扫描参数设置;扫描报告;二Namp扫描本机的输出;端口状态;工具下载:http://pan.baidu.com/s/1slEEOMD原创 2016-04-08 17:44:38 · 818 阅读 · 0 评论