再搭环境是狗
码龄4年
关注
提问 私信
  • 博客:18,388
    问答:197
    18,585
    总访问量
  • 27
    原创
  • 2,289,644
    排名
  • 17
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河北省
  • 加入CSDN时间: 2021-03-28
博客简介:

goat_2003的博客

查看详细资料
个人成就
  • 获得32次点赞
  • 内容获得26次评论
  • 获得32次收藏
创作历程
  • 31篇
    2021年
成就勋章
TA的专栏
  • pwn
    2篇
  • 汇编
    2篇
  • 逆向
    15篇
  • c语言
    1篇
  • hexo github 主题
  • 计算机存储
  • c语言 vs2019
  • pe
    3篇
  • 硬编码
    1篇
兴趣领域 设置
  • 数据结构与算法
    数据结构
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

关于c++类内对成员变量进行new初始化这件事

发布问题 2021.12.15 ·
0 回答

关于c++类内对成员变量进行new初始化这件事

发布问题 2021.12.15 ·
0 回答

leetcode刷题

leetcode刷题日记<day 2021/10/20>453. 最小操作次数使数组元素相等 简单给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。示例 1:输入:nums = [1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]示例 2:输入:nums = [1,1,
原创
发布博客 2021.10.29 ·
817 阅读 ·
1 点赞 ·
2 评论 ·
0 收藏

c++ primer 笔记

c++ primer 学习笔记变量列表初始化变量中有个列表初始化感觉挺重要的,列表初始化是c++11中的新特性,看书有点没看明白,看了两篇文章1,文章2感觉还挺清晰的.那么什么是列表初始化呢?其实就是一种新的初始化方式,适用于各种类型,可以直接在变量名后面加上初始化列表来进行对象的初始化。vector<string> articles={"a","an","the"};int a{111};列表初始化的一些规则:首先说下聚合类型可以进行直接列表初始化,这里需要了解什么是聚合类
原创
发布博客 2021.10.19 ·
272 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

C++提高编程

title: C++提高编程date: 2021-08-09 12:39:00tags:- -C++categories:- C++- 笔记cover: /img/c++.png相关视频——黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难-(167-263)(1-83笔记)——链接(84-146笔记)——链接(146-166笔记)——链接[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q1MiOUlT-1632736048308)(/.
转载
发布博客 2021.09.27 ·
383 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

菜菜想找个厉害师傅学习

发布问题 2021.09.18 ·
4 回答

四个整数,编写出最大和最小值,求若按我这法,到底那一步不对,或是思路出现了什么问题,刚开始学

答:

scanf后加_s是因为scanf存在栈溢出漏洞,printf又不存在栈溢出,你加个_s有啥用啊

回答问题 2021.09.18

四个整数,编写出最大和最小值,求若按我这法,到底那一步不对,或是思路出现了什么问题,刚开始学

答:

为啥你前面两个fi和后面的if不一样呢?

回答问题 2021.09.18

双系统ubuntu,怎么解决

答:

wsl值得拥有

回答问题 2021.09.18

64位栈溢出简单rop与简单例题的复现

首先还是找到关键函数可以看到有read栈溢出漏洞,有system函数,查看字符串,还可以看到"/bin/sh",既然这样,我们便可以一步到位直接通过rop将/bin/sh装入system函数中getshell。如何通过rop实现传参呢?64位ELF是通过寄存器存放参数的,所以我们要想办法将/bin/sh放入rdi中并紧接着调用system函数。那么该如何实现呢?我们假设一下,先通过pop edi将/bin/sh的地址压入edi中,然后再执行ret,并将此时的esp所指向栈空间的值改为system函数
原创
发布博客 2021.09.18 ·
727 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

pwn2test

#include<stdio.h>int f(){ char arr[0x20]; read(0,arr,0x100); printf("%s",arr); return 0;}//编译命令 gcc -m32 004.c -o 004 -fno-stack-protector -no-pie// 005 gcc 004.c -o 005 -fno-stack-protector -no-pievoid backdoor(int
原创
发布博客 2021.09.16 ·
187 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

shellcode加载器

编写shellcode不能使用绝对地址,因为当我们加载到其他函数中时绝对地址储存的可能什么也没有,甚至是其他函数,所以当我们需要调用一个函数时,需要动态获取函数的地址实现调用。想要动态获取函数地址,可以使用以下函数GetProcAddress 从dll中获取函数的地址LoadLibraryA 将指定的模块加载到调用进程的地址空间中举个例子:LPVOID lp = GetProcAddress(LoadLibraryA("user32.dll"),"MessageBoxA");_asm{
原创
发布博客 2021.09.10 ·
1662 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

重学一下汇编

EAX:累加器 AccumulatorEBX:基础寄存器 BaseECX:计数器 CountEDX:数据寄存器 DataESI:源变址寄存器 Source IndexEDI:目的变址寄存器 Destination IndexESP:堆栈指示器 Stack PointerEBP:堆栈基址寄存器 Base Pointer虽然有这么多名称,实际上除了e
原创
发布博客 2021.09.04 ·
233 阅读 ·
1 点赞 ·
3 评论 ·
1 收藏

BUU_re_[ACTF新生赛2020]usualCrypt

首先拖入ida中int __cdecl main(int argc, const char **argv, const char **envp){ int v3; // esi int result; // eax int v5[3]; // [esp+8h] [ebp-74h] BYREF __int16 v6; // [esp+14h] [ebp-68h] char v7; // [esp+16h] [ebp-66h] char v8[100]; // [esp+18h] [
原创
发布博客 2021.09.04 ·
266 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

crackme杂记

关于PDB文件和debug的关系,PDB文件中存储着程序的符号文件,因为只是debug是放不下那么多的。易语言按钮事件特征码:FF 55 FC 5F 5E,准确来说是易语言控件消息的必经之地,包括时钟调用都一定会经过这个特征码。寻找易语言的MFC按钮事件特征,我们已经知道了MFC按钮事件的特征码,并且再_AfxDispatchCmdMsg函数中第四个参数是按钮的函数,可是当我们在易语言程序中这样寻找时,却发现,没找到特征码,是因为易语言并不纯粹是MFC,还包含了一些其他的东西,实际上易语言的按钮事件是.
原创
发布博客 2021.08.31 ·
350 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

在MFC中快速定位按钮事件的新方式

我在上一篇文章《 如何在MFC中定位按钮事件 》采用了寻找虚函数表的方法来寻找按钮事件,但是用不同版本的VS编译器编译出来的MFC程序,在进入afxWinMain入口前做了非常多的工作,而且在不同版本中所做的内容是不尽相同的。下图左边是vs6.0的MFC的调用堆栈,右边是vs2010的MFC的调用堆栈。在MFC程序中,有且仅有一个继承自CWinApp的类,而且这个类是全局的,只有一个,程序运行的时候已经初始化了。1,原理:继承自CWinApp的类和窗口的类在内存中有 static const A
转载
发布博客 2021.08.31 ·
881 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

通过分析调用堆栈定位MFC按钮事件

1,逆向分析这个东西的前提是你得懂这个东西,例如,就像逆飞机一样,你连飞机是什么都不知道,当然你也就逆不出来,逆之前, 你得自己会造飞机,只是你没有别人造的好。分析过程中,不需要弄懂每个细节,只需关注重点部分和整体流程。学会根据经验猜测。2,原理:我们新建的MFC程序,界面上就放2个按钮,事件处理函数随便写。然后我们在按钮那里设置断点。程序运行起来后,我们点击button1,程序就断下来了,然后我们就查看它的调用堆栈,谁调用了这个按钮处理函数,找到事件分发函数。_AfxDispatchCmdMs
转载
发布博客 2021.08.31 ·
708 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

crackme杂记007

花指令的特征:遇到这种指令,可以立即判断出这是一个花指令,所以花指令较多的话,我们也可以通过搜索代码的方式快速去除如上图,我们已经知道 E8 01 00 00 00 ?? ?? ?? ?? ?? C3 是花指令,所以我们直接搜索这擦混代码一个一个nop就可以了。易语言中的特征码:想要搜索易语言程序的特征码,最好在程序的开始位置搜索,1.字符串比较函数的特征码: test edx,3执行到这里停住以后,注意观察ECX,EDX寄存器,比骄傲的字符串一定就在这两个寄存器里面,并且我们可以放根据找
原创
发布博客 2021.08.23 ·
184 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

crackme杂记 006

c语言中什么函数执行的最早?main函数吗?不是,还有更早执行的函数,比如初始化全局变量的构造函数。我们都知道,od在反汇编一个exe的时候会停止在oep的位置上,那么有比oep还要更早执行的函数吗?有的,比如TLS。既然tls比ebp都早,那么我们是否可以利用到它呢?比如反调试,如下图代码#include<iostream>#include<tchar.h>#include"ntdll/ntdll.h"#include<windows.h>DWORD i
原创
发布博客 2021.08.22 ·
155 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

crackme杂记 005

加壳的程序的断点技巧:creatwindowsEXA ,creatwindowsEXW这两个函数是创建窗口函数,可以让我们在壳之前下断点。两个函数有什么区别呢?W是unicode编码,而A是ascii编码。而我们程序在调用API的时候,一般都会从A调用到W,就比如32位的程序,在64位的操作系统中,最后都会调用64位的API一样。当然也有例外,所以我们在下断点的时候最好两个函数都下断点。IDA快捷键: x可以查看引用函数的位置。ida有时候字符串感觉有些怪异的话,比如特别短,可能是因为unicode编
原创
发布博客 2021.08.21 ·
166 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏
加载更多