<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SNiFe的博客]]></title><description><![CDATA[但行好事，莫问前程。]]></description><link>https://blog.csdn.net/steve95</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; steve95]]></copyright><item><title><![CDATA[iPad远程控制windows主机及内网穿透原理]]></title><link>https://blog.csdn.net/steve95/article/details/120111652</link><guid>https://blog.csdn.net/steve95/article/details/120111652</guid><author>steve95</author><pubDate>Sun, 05 Sep 2021 14:35:01 +0800</pubDate><description><![CDATA[iPad远程控制windows主机及内网穿透原理前言一、原理介绍1.为什么要内网穿透？2.如何实现内网穿透？二、操作步骤1.在服务器配置frp2.在windows主机配置frp3.开放服务器端口4.iPad连接windows主机三、没有服务器的其他办法参考资料


前言
ipad pro2020出来时宣传语是：你的下一台电脑何必是电脑。确实这个宣传语非常的吸引人，有这个成分的元素，我入手了ipad pro2020。然而，再买回来后，我发现它距离电脑还是有很大差距的，买了键盘鼠标拿来谢谢文档还是不错的，但是要]]></description><category></category></item><item><title><![CDATA[神了！！看完这篇文章我不仅学会了手撸vue三开关组件，还搞懂了父子组件传值]]></title><link>https://blog.csdn.net/steve95/article/details/119895187</link><guid>https://blog.csdn.net/steve95/article/details/119895187</guid><author>steve95</author><pubDate>Wed, 01 Sep 2021 19:41:40 +0800</pubDate><description><![CDATA[神了！！看完这篇文章我不仅学会了手撸vue三开关组件，还学会了编写vue组件引子前置知识什么是vue组件父子组件传值父传子子传父model选项的引入三开关组件（three-switch）
引子
前置知识
什么是vue组件
父子组件传值
父传子
子传父
model选项的引入
三开关组件（three-switch）


...]]></description><category></category></item><item><title><![CDATA[uni-app的flex盒模型与布局进阶写法（高手勿进）]]></title><link>https://blog.csdn.net/steve95/article/details/116014510</link><guid>https://blog.csdn.net/steve95/article/details/116014510</guid><author>steve95</author><pubDate>Thu, 22 Apr 2021 18:44:14 +0800</pubDate><description><![CDATA[uni-app的flex盒模型与布局进阶写法（高手勿进）官方文档盒模型的进阶操作flex布局总结
官方文档
许多细节不多赘述，细枝末节还是看官方文档
盒模型
flex布局
盒模型的进阶操作

盒模型其实很简单，主要是对于margin和padding以及border的使用
可以这样去理解，margin向外扩展，padding是向内缩减，border是对边框的操作，content在这里我们不去关注，content将会在下面的flex布局中去讨论。
这个部分讲几个我认为比较有用的写法：

圆角框


&lt;te]]></description><category></category></item><item><title><![CDATA[攻防世界 高手区 simple-check-100 —— gdb动态调试绕过判断函数]]></title><link>https://blog.csdn.net/steve95/article/details/109304127</link><guid>https://blog.csdn.net/steve95/article/details/109304127</guid><author>steve95</author><pubDate>Tue, 27 Oct 2020 09:25:23 +0800</pubDate><description><![CDATA[攻防世界 高手区 simple-check-100 —— gdb动态调试绕过判断函数IDA静态调试
IDA静态调试

可以轻松判断interesting _function函数是藏有flag的函数，点开查看伪代码

可以看到这个函数有输出部分，如果能逆出来那就是flag，但是在查看后我放弃了，这内存指过来指过去很烦，于是我去看了check函数：

这能判断为真？？？？？？
直接gdb动态调试，绕过这个函数
Linux运行，输入命令
gdb task9_x86_64_46d01fe312d35ecf69c4f]]></description><category></category></item><item><title><![CDATA[攻防世界 高手区 serial-150 WP \ IDA远程动态调试适合新手]]></title><link>https://blog.csdn.net/steve95/article/details/109228878</link><guid>https://blog.csdn.net/steve95/article/details/109228878</guid><author>steve95</author><pubDate>Thu, 22 Oct 2020 20:08:48 +0800</pubDate><description><![CDATA[攻防世界 高手区 serial-150 WP \ IDA远程动态调试适合新手1.脱壳分析2.IDA远程动态调试——连接补充一下远程连接前面的步骤：第一步第二步第三步3.IDA远程动态调试——调试
1.脱壳分析
发现是一个64位ELF文件，拖进IDA64静态分析，找不到入口函数，判断是代码混淆，但我比较菜，还不知道把结构改好，所以我只能采取IDA远程动态调试。
2.IDA远程动态调试——连接
这里我踩到坑了，我IDA无法连接到Linux虚拟机，我查了很多资料，最开始以为是防火墙没关，我用的kali，采用指令u]]></description><category></category></item><item><title><![CDATA[攻防世界re高手区  Mysterious WP]]></title><link>https://blog.csdn.net/steve95/article/details/109210307</link><guid>https://blog.csdn.net/steve95/article/details/109210307</guid><author>steve95</author><pubDate>Wed, 21 Oct 2020 21:31:12 +0800</pubDate><description><![CDATA[攻防世界re高手区  Mysterious WP先查壳，帮助分析IDA32静态分析
先查壳，帮助分析

看完信息，丢进IDA32静态分析
IDA32静态分析
先shift+F12看看字符串看看有无提示信息

发现well done，于是大胆猜测，这段代码附近有flag出没，我们查看伪代码

果然有flag，只要解出v5，就是flag
_itoa()是系统函数，百度，查到了它的作用

于是得到v5=“123”，拼接得到flag

...]]></description><category></category></item><item><title><![CDATA[攻防世界EasyRe WP]]></title><link>https://blog.csdn.net/steve95/article/details/109186345</link><guid>https://blog.csdn.net/steve95/article/details/109186345</guid><author>steve95</author><pubDate>Tue, 20 Oct 2020 18:15:47 +0800</pubDate><description><![CDATA[攻防世界EasyRe
查看脱壳信息后丢入ida32，按下shift+F12发现第一行有flag，但是不是正确的，又看到有一个right\n

所以可以判断真正的flag在这段指令附近，于是查看伪代码

看到这个后，很容易逆出flag，代码如下：
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;

int  main()
{
    const char* tar = "xIrCj~&lt;r|2tWsv3]]></description><category></category></item><item><title><![CDATA[攻防世界elrond32题解]]></title><link>https://blog.csdn.net/steve95/article/details/108555386</link><guid>https://blog.csdn.net/steve95/article/details/108555386</guid><author>steve95</author><pubDate>Sat, 12 Sep 2020 21:27:38 +0800</pubDate><description><![CDATA[攻防世界elrond32题解使用exeinfope查看文件信息分析反汇编代码编写代码获取flag
使用exeinfope查看文件信息

查看后发现是一个32位的ELF可执行文件，丢进IDA32查看反汇编代码
分析反汇编代码

首先找到main函数，F5查看伪代码

看见Access granted显然可知sub_8048538()函数是输出flag的函数，点开看看

看代码发现我们需要得到数组a2的值，于是回到main函数，发现a2与sub_8048414()函数有关，点开看看

分析函数，写出代码，得到a]]></description><category></category></item><item><title><![CDATA[MIPS架构及其汇编初步]]></title><link>https://blog.csdn.net/steve95/article/details/107974811</link><guid>https://blog.csdn.net/steve95/article/details/107974811</guid><author>steve95</author><pubDate>Thu, 13 Aug 2020 10:55:25 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/thoupin/p/4018455.html

]]></description><category></category></item><item><title><![CDATA[Python学习二]]></title><link>https://blog.csdn.net/steve95/article/details/104325676</link><guid>https://blog.csdn.net/steve95/article/details/104325676</guid><author>steve95</author><pubDate>Sat, 15 Feb 2020 16:50:35 +0800</pubDate><description><![CDATA[迭代器与生成器
迭代器
迭代器是访问集合的一种方式，是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问，直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本方法 iter() 和 next() 。
字符串、列表或元组对象都可以用于创建迭代器：
list = [1,2,3,4]
tmp = iter(list) #创建迭代器对象
print(next(it))  ...]]></description><category></category></item><item><title><![CDATA[Python学习一]]></title><link>https://blog.csdn.net/steve95/article/details/104267101</link><guid>https://blog.csdn.net/steve95/article/details/104267101</guid><author>steve95</author><pubDate>Tue, 11 Feb 2020 20:39:05 +0800</pubDate><description><![CDATA[大飒飒]]></description><category></category></item><item><title><![CDATA[友链（大佬们的博客）]]></title><link>https://blog.csdn.net/steve95/article/details/104260635</link><guid>https://blog.csdn.net/steve95/article/details/104260635</guid><author>steve95</author><pubDate>Tue, 11 Feb 2020 11:47:40 +0800</pubDate><description><![CDATA[Cclock计院大佬
lemonaaaaa武汉大学大神

]]></description><category></category></item><item><title><![CDATA[题解 P2321 【[HNOI2006]潘多拉的宝盒】]]></title><link>https://blog.csdn.net/steve95/article/details/104215731</link><guid>https://blog.csdn.net/steve95/article/details/104215731</guid><author>steve95</author><pubDate>Fri, 07 Feb 2020 21:00:26 +0800</pubDate><description><![CDATA[#我居然是第一个
坐这道题的最关键的一步也是第一步：读懂题！！！！！！！
题目大意：
有s个咒语机，每个咒语机出度为2，字符串后加0指向一个元件，加1指向一个元件，直到找到一个输出元，算是一种方案；当A咒语机的所有方案包含B咒语机的所有方案时，那么A咒语机是B咒语机的升级。求：最长升级序列的长度。（我读了40分钟才读懂，语文不好）
#做法：
我一开始是没有思路的，感觉像搜索，看了网上很多代码都是T...]]></description><category></category></item><item><title><![CDATA[题解 P2704 【炮兵阵地】]]></title><link>https://blog.csdn.net/steve95/article/details/104215709</link><guid>https://blog.csdn.net/steve95/article/details/104215709</guid><author>steve95</author><pubDate>Fri, 07 Feb 2020 20:59:00 +0800</pubDate><description><![CDATA[这道题和P1879 [USACO06NOV]玉米田Corn Fields有类似的地方，但这道题可以看为那道题的升级版，所以我建议没做过玉米田的可以先做一下玉米田和P1896 [SCOI2005]互不侵犯King。
1.
解此题的关键在于要知道第i行的状态是由前两行的状态决定的，所以要预处理出第一行和第二行的所有状态，然后从第三行（因为第一二行已处理）开始枚举，同时枚举第当前行的前一行和上上行。
2...]]></description><category></category></item><item><title><![CDATA[题解 P1855 【榨取kkksc03】]]></title><link>https://blog.csdn.net/steve95/article/details/104215694</link><guid>https://blog.csdn.net/steve95/article/details/104215694</guid><author>steve95</author><pubDate>Fri, 07 Feb 2020 20:57:51 +0800</pubDate><description><![CDATA[尽管说这是站长大人出的题，但确实很简单。-&gt;_-&gt;
这就是一个二维背包费用问题，用dp[i][j]表示当钱为i，时间为j时能最大满足愿望数量；
那么状态转移方程为：dp[j][k]=max(dp[j][k],dp[j-mon[i]][k-tim[i]]+1)；
CODE
#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&l...]]></description><category></category></item><item><title><![CDATA[题解 P2184 【贪婪大陆】]]></title><link>https://blog.csdn.net/steve95/article/details/104215684</link><guid>https://blog.csdn.net/steve95/article/details/104215684</guid><author>steve95</author><pubDate>Fri, 07 Feb 2020 20:57:00 +0800</pubDate><description><![CDATA[我看见没有C++的线段树写法，所以来发一波题解。
这是一个代码简单的线段树，但其实不是很容易想到这种思路。
线段树要维护两个东西，一个suml（起点），sumr（终点）；
插入：
插入的时候只需要在起点和终点sum++（区间维护，实际是点修改），如图：

查询：
查询x ~ y区间的时候需要用1~ y点的suml - 1 ~ x点的sumr；
为什么这样查询呢？大家仔细想想，用笔画画，这是个区间覆...]]></description><category></category></item><item><title><![CDATA[题解 P1637 【三元上升子序列】]]></title><link>https://blog.csdn.net/steve95/article/details/104215638</link><guid>https://blog.csdn.net/steve95/article/details/104215638</guid><author>steve95</author><pubDate>Fri, 07 Feb 2020 20:55:32 +0800</pubDate><description><![CDATA[这道题我也不知道怎么了，改着改着就AC了。。。。。。（然而自己看不懂自己的代码）
但在我仔细思考后就想通了^ _ ^ 233。
不是有三个数吗,那就吧当前枚举的数当做三个数中的第二个，先找比它小的数有几个，再找比它大的数有几个，分别用mi[ ]和ma [ ]记录下来，
最终答案就是ans+=mi[i]*ma[i]；
由此，我们想到了用树状数组求比它大和比它小的数有多少个——即逆序队。
先由小到大排...]]></description><category></category></item><item><title><![CDATA[题解 P1801 【黑匣子_NOI导刊2010提高（06）】]]></title><link>https://blog.csdn.net/steve95/article/details/104215632</link><guid>https://blog.csdn.net/steve95/article/details/104215632</guid><author>steve95</author><pubDate>Fri, 07 Feb 2020 20:53:35 +0800</pubDate><description><![CDATA[这道题其实就是个splay裸题，而且只用写insert，findx，clear，update，rotate，splay这几个函数，加起来不到100行代码。
思路很简单，for（lef-&gt;u[i]）insert（a[++lef]）。然后查找排名为i的就好了。
CODE
#include&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;alg...]]></description><category></category></item><item><title><![CDATA[题解 P1175 【表达式的转换】]]></title><link>https://blog.csdn.net/steve95/article/details/104215623</link><guid>https://blog.csdn.net/steve95/article/details/104215623</guid><author>steve95</author><pubDate>Fri, 07 Feb 2020 20:52:56 +0800</pubDate><description><![CDATA[这道题太坑了！！！！！！！！！！！！！请30分的注意，有’^'符号orz
这道题我用的是dfs模拟栈，和楼下各位dalao有所不同，在dfs之前要预处理出‘)'的位置。
然后一个for循环就可以计算加写步骤了，只要后缀表达式写出来了，后面的就很简单了。
还有要注意的是，’^'比其他符号优先，’*‘ ’/‘比’+‘ ’-‘优先，如果用DFS模拟栈的话是不用在符号上特殊考虑括号的优先级别的。
后缀表达...]]></description><category></category></item><item><title><![CDATA[题解 P1831 【杠杆数】]]></title><link>https://blog.csdn.net/steve95/article/details/104215611</link><guid>https://blog.csdn.net/steve95/article/details/104215611</guid><author>steve95</author><pubDate>Fri, 07 Feb 2020 20:52:01 +0800</pubDate><description><![CDATA[此题是数位DP，没学过数位DP的，这可以是一道很经典的入门题目
1. 本题是一道数位DP，首先我们可以只考虑设计算法求[1,x]这个区间内符合条件的数的个数即可。因为[x,y]这个区间内的个数实际上是[1,y]区间内的个数减去[1,x-1]区间内的个数。（注意要把0特殊出来考虑）
2. 之后我们可以枚举支点的位置，对于每个满足条件的数，它所对应的支点是唯一的，原因是如果将支点右移，左边减去右边的差...]]></description><category></category></item></channel></rss>