1、查看基本信息,32 位 ELF 程序,注意到是静态链接 运用 strings 工具发现了 UPX 字样 2、脱壳 3、载入 IDA 一个进程在由 pipe()创建管道后,一般再fork一个子进程,然后通过管道实现父子进程间的通信,管道两端可分别用描述字fd[0]以及fd[1]来描述,需要注意的是 ...
分类:
其他好文 时间:
2020-10-05 22:28:52
阅读次数:
31
服务端通常需要支持高并发业务访问,如何设计优秀的服务端网络IO工作线程/进程模型对业务的高并发访问需求起着至关重要的核心作用。本文总结了了不同场景下的多种网络IO线程/进程模型,并给出了各种模型的优缺点及其性能优化方法,非常适合服务端开发、中间件开发、数据库开发等开发人员借鉴。
分类:
数据库 时间:
2020-10-05 22:04:05
阅读次数:
39
题意 问题转化成, 有 \(N\) 堆石子, 博弈双方每次可以选择不超过 \(M\) 堆, 每堆取不超过 \(X\) 个, 总的取石子数至少为一. 问胜利方. 题解 对于单堆来说是一个巴什博弈, \(SG\) 值为石子数模 \(X+1\). 我们回忆 \(M=1\) 时的 \(Nim\) 博弈, 它 ...
分类:
其他好文 时间:
2020-10-05 21:47:14
阅读次数:
26
首先,我们先了解一下什么是阻塞队列: 当队列满了时,队列会阻塞插入元素的线程,直到队列不满; 当队列为空时,获取元素的线程会等待队列变成非空。 常用到的方法 上面是对阻塞队列的简单了解,下面重点分析一下LinkedBlockingQueue。 源码分析 Node节点 可以看出是单向的链表结构 sta ...
分类:
数据库 时间:
2020-09-24 22:14:44
阅读次数:
101
代码如下 #include<iostream> using namespace std; const int MAXN = 1000 + 5; struct Node // 进去一个出去一个,很明显,队列 { int num; // 保存进去的数字 }; struct Node queue[MAXN ...
分类:
其他好文 时间:
2020-09-24 21:25:32
阅读次数:
42
多线程 进程与线程 一个进程有多个线程 进程之间相互隔离,线程之间可以相互通信 cpu一个时间点只能执行一个线程,但多个线程之间的切换比较快,给人一种多个线程同时执行的错觉 实现多线程的3种方法 继承Thread类(不推荐) 创建类,继承Thread类 重写run()方法 创建对象,使用start( ...
分类:
编程语言 时间:
2020-09-24 21:18:25
阅读次数:
43
非常简单的一道题,此博客的意义在于一个细节 (简单的式子推导略过) 代码 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<queue> #includ ...
分类:
其他好文 时间:
2020-09-23 23:46:38
阅读次数:
43
高精度阶乘 #include<iostream> #include<cstring> #include<cstdio> #include<string> #include<queue> #include<stack> #include<algorithm> #include<vector> #inc ...
分类:
其他好文 时间:
2020-09-21 11:51:39
阅读次数:
30
AT4996 [AGC034F] RNG and XOR(FWT) 题目大意 给定 \(n\) 和一个长度为 $2^n$ 的数组 \(A\) (从 $0$ 标号). 有一个初始为 $0$ 的变量 \(x\) . 不断操作, 每次操作以 \(\frac {A_i}{\sum_{j=0}^{2^n-1} ...
分类:
其他好文 时间:
2020-09-18 17:22:08
阅读次数:
46
了解了一下线程池,先记录一下,之后还会更新 1 import java.util.concurrent.ExecutorService; 2 import java.util.concurrent.Executors; 3 4 /** 5 * 以下是Java提供的创建线程池的四种常见方式,如果有特殊 ...
分类:
编程语言 时间:
2020-09-18 03:27:17
阅读次数:
41