自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LYSM

[LYing SiMon] tells the lies that he [Loves You So Much]

  • 博客(370)
  • 收藏
  • 关注

原创 [Node.Js] Session 保存用户信息

背景cookie:由服务端生成,发送给客户端后保存在客户端,适合保存不重要的数据session:由服务端生成,然后保存在服务端,但大量的 session 相比 cookie 更加安全,适合保存重要数据。因为会话结束前 session 不会销毁,所以大量的 session 会给服务端带来压力tooken:保存在服务端,本质上是一种计算方式,客户端发送一个 tooken 给服务端,服务端使用这个 tooken 可以计算出一个值,这个值里存放了会话中的数据(作用类似于 session),不同的是这个值是计

2021-08-22 23:22:33 887

原创 使用 Enigma Virtual Box 打包单文件

介绍和 winrar 自带的 自解压 功能不同,自解压的本质其实是将几个文件制作成一个压缩包,只是这个压缩包的格式是 exe ,运行这个 exe 后,一般会把文件解压缩到 %temp% 这个目录,之后在退出程序时再将这个目录下的文件清理掉,这个过程一般对用户是透明的。而 Enigma Virtual Box 属于虚拟文件打包系统,不会释放文件到硬盘,所以它的打开速度要比自解压打包的 exe 启动快。官网下载:https://enigmaprotector.com/en/downloads.html

2021-08-18 17:38:53 4896 1

转载 [Rootkit] 傀儡进程

实现原理:以挂起的方式打开目标进程,将ShellCode代码写入目标进程,并修改目标进程的执行流程,使其转而执行ShellCode代码,这样,进程还是目标原本进程,但执行的操作却替换成我们的ShellCode了。实现过程:(1).调用CreateProcess以挂起的方式(CREATE_SUSPENDED)创建进程(2).调用VirtualAllocEx函数申请一个可读、可写、可执行的内存(3).调用WriteProcessMemory将Shellcode数据写入刚申请的内存中(4).调用Ge

2021-08-16 20:07:13 1193 1

原创 [进程保护] CrossThreadFlags 标志位

将进程的所有线程的线程 CrossThreadFlags 标志位设置成 Terminated 或者 System。win 10 下的偏移:dt _ethread...+0x6d0 CrossThreadFlags...这个在Wrk中有简单的说明,大概就是:union { ULONG CrossThreadFlags; struct { ULONG Terminated : 1; // 欺骗系统此

2021-08-16 19:21:57 627 1

原创 [r0反调试] EPROCESS - Protection

在调试进程时 , 进程的 EPROCESS 的 Protection 成员 为 1 , 默认情况下是 0 。可以通过这个特征判断是否处于调试状态。当然这个不是官方的方法,但是用来对已知的进程(自己的)做反调试足以。...

2021-08-16 15:39:52 484

原创 [保护&过保护] _EPROCESS 的 Protection 成员

在 win10 中,该成员在 _eprocess 结构中的偏移如下:dt _eprocess:......+0x6ca Protection : _PS_PROTECTION......将这个成员修改为 0x72 (参考 System 进程的值) ,就可以让一个普通的进程(如 NotePad)变成受保护状态,在 Pchunter 里看到的就是 应用层访问拒绝 。...

2021-08-16 14:19:30 823 1

转载 [注入] 突破 SESSION 0 隔离的远线程注入

与传统的CreateRemoteThread函数实现的远线程注入DLL的唯一区别在于,突破SESSION 0远线程注 入技术是使用比CreateRemoteThread函数更为底层的ZwCreateThreadEx函数来创建远线程,而具体的远线 程注入原理是相同的。#include<stdio.h>#include<windows.h>#include<Tlhelp32.h>#define NAME "wininit.exe"//被注入的进程#define PA

2021-08-16 10:04:19 363

原创 [C#] RSA 加密解密

代码来自网络:(记得替换命名空间)RSA_PEM.cs:using System;using System.IO;using System.Numerics;using System.Linq;using System.Security.Cryptography;using System.Text;using System.Text.RegularExpressions;namespace Login{ /// <summary> /// RSA PEM格式密钥对的解

2021-08-15 18:07:04 854

原创 git 撤销 push 提交

1.首先切换到你要回退的分支,右键 show log ,找到你要回退的那个 Commit ,右键 - Reset this to this vision2.在弹出的对话框中选择 reset Type 为 hard 。3.在 PUSH 的时候,Options 中选择 force known changes。4 push 代码 ,之后就可以覆盖掉之前的那个提交。...

2021-08-15 00:47:32 7951

原创 [环境搭建] git push代码不再支持账号密码登陆

今天提交代码的时候报了个错:Support for password authentication was removed on August 13, 2021. Please use a personal access大概意思是不让用账号密码作为身份验证了,推荐使用 personal access创建 personal access 的过程在网上搜了下:https://docs.github.com/cn/github/authenticating-to-github/keeping-you

2021-08-14 18:23:43 234

原创 [c++] gdiplus绘制透明异型窗口

本来是想使用 GDI+ 制作一个透明窗口,然后使用 SetWindowDisplayAffinity 来实现反截屏的目的,但是遗憾的是针对 WS_EX_LAYERED 属性的窗口,SetWindowDisplayAffinity 的调用总是会失败,返回错误码 :8 。但是写都写了,就记录下来备忘吧。(代码参考自网络,结构上做了一些小修改,侵删)#include <iostream>#include <Windows.h>#include <gdiplus.h&g

2021-08-09 19:54:48 1577 2

原创 [C#] MD5 加密

/// <summary> /// 字符串MD5加密 /// </summary> /// <param name="Text">要加密的字符串</param> /// <returns>密文</returns> public static string MD5(string Text) { byte[] buffer = System.Text.Encoding.Def.

2021-08-08 14:30:25 173

原创 [C#] 获取硬件 Id

添加引用:using System.Management;代码:class HardWareInfo{ /// <summary> /// 获取 CPUID , 更多 cpu 信息参考 /// </summary> /// <returns> cpuid </returns> public static string GetCpuId() { string cpuid = ""; try { Manageme

2021-08-07 12:14:35 927

转载 [Windows驱动开发] 进程的pid - handle - eprocess之间相互转换的方法

在内核程序开发中,我们常常需要取得某进程的pid或句柄,或者需要检索进程的eprocess结构,很多API函数需要的参数也不同,所以掌握pid<->handle<->eprocess相互转换的方法会大大提高我们的开发效率。以下就是我自己在实际开发中总结出来的转换方法,在此记录下来,以供需要的朋友参考。1、pid->handleOBJECT_ATTRIBUTES ObjectAttributes;CLIENT_ID clientid;InitializeObject

2021-08-05 17:19:59 906 1

原创 [C++] 使用 cryptopp 加密解密

官网:https://www.cryptopp.com/docs/ref/index.htmlgithub:https://github.com/LYingSiMon/cryptopp文档:https://www.cryptopp.com/docs/ref/环境搭建引入cryptlib.lib , 以及所有项目中的头文件AES 加密测试(ECB 模式为例)#include <iostream>#include "cryptlib.h"#include .

2021-08-01 00:33:42 1528

原创 [C#] AES 加密

public static string AesEncrypt(string str, string key) { if (string.IsNullOrEmpty(str)) return null; Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str); RijndaelManaged rm = new RijndaelManaged(); ...

2021-07-31 13:51:07 543

原创 [C#] 获取时间戳(秒/毫秒)

/* bflag : true 秒 , false 毫秒*/public static string GetTimeStamp(bool bflag){ TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0); string ret = string.Empty; if (bflag) ret = Convert.ToInt64(ts.TotalSeconds).ToString(); else .

2021-07-29 16:44:51 9751

原创 [C++] 异或加密

std::string Encrypt(std::string content, std::string secretKey){ for (int i = 0; i < content.length(); i++) { content[i] ^= secretKey[i % secretKey.length()]; } return content;}std::string Decrypt(std::string data, std::str.

2021-07-29 15:13:41 411

原创 [C#] 异或加密

private char[] Encrypt(string content, string secretKey){ char[] data = content.ToCharArray(); char[] key = secretKey.ToCharArray(); for (int i = 0; i < data.Length; i++) { data[i] ^= key[i % key.Length]; } return ...

2021-07-29 14:18:23 367

原创 [Rootkit] 驱动隐藏 - 断链

注意 : 此方法会触发 PG代码参考 1typedef struct _driverdata{ LIST_ENTRY listentry; ULONG unknown1; ULONG unknown2; ULONG unknown3; ULONG unknown4; ULONG unknown5; ULONG unknown6; ULONG unknown7; UNICODE_STRING path; UNICODE_STRING name;}driverdata;VOI

2021-07-12 20:28:49 421

转载 [检测&过检测] 重写 ReadProcessMemory 、WriteProcessMemory

一、本文大纲系统调用的两种方式:中断门和快速调用_KUSER_SHARED_DATA 结构使用 cpuid 指令判断当前CPU是否支持快速调用3环进0环需要更改的4个寄存器以 ReadProcessMemory 为例说明系统调用全过程重写 ReadProcessMemory 和 WriteProcessMemoryint 0x2e 和 sysenter 都做了什么工作?二、中断门和快速调用以我的理解,系统调用,即从调用操作系统提供的3环API开始,到进0环,再到返回结果到3环的全过程

2021-07-12 19:42:11 1988

原创 [C#] 处理 Json

环境搭建点击 NuGet 程序包安装 Newtonsoft.Json添加 using :using Newtonsoft.Json;写 JsonStringWriter sw = new StringWriter();JsonWriter writer = new JsonTextWriter(sw);writer.WriteStartObject();writer.WritePropertyName("password");writer.WriteValue(textBoxT

2021-07-11 23:11:42 116

原创 [C#] 发送 http 请求

http post 请求 ,参数使用 json 格式using System.Net;using System.IO;public static string PostUrl(string url, string postData){ string result = ""; byte[] data = Encoding.UTF8.GetBytes(postData); HttpWebRequest req = (HttpWebRequest)WebRequest.Cre

2021-07-07 11:28:16 410

原创 [C++功能函数] 判断文件&目录是否存在

代码/* 需要引入头文件 #include <io.h> 存在返回 true ,不存在返回 false*/BOOL isFileOrDirExist(PCHAR name){ return _access(name, 0) == 0 ? TRUE : FALSE;}

2021-07-05 14:50:53 190

原创 [Node.js] rsa&aes 加密解密

代码'use strict';const express = require('express')const bodyParser = require('body-parser')var crypto = require('crypto');var NodeRSA = require('node-rsa');// 创建服务器const app = express()// 初始化 bodyParserapp.use(bodyParser.urlencoded({ extend: fal

2021-07-04 22:46:27 323

原创 [Node.js] mongodb 增删查改

代码mydb.js (用来定义表结构、连接数据库)const mongoose = require('mongoose')// 连接数据库 :mongo_testmongoose.connect('mongodb://localhost:27017/mongo_test', { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true })// 定义 User 表字段const User = mongoose.

2021-06-25 10:07:48 129

原创 [Node.Js] express 处理 get&post 请求

代码'use strict';const express = require('express')const bodyParser = require('body-parser')// 创建服务器const app = express()// 初始化 bodyParserapp.use(bodyParser.urlencoded({ extend: false }));app.use(bodyParser.json());// 处理主页 get 请求app.get('/', (

2021-06-24 10:48:37 109

原创 [漏洞] 空指针解引用

原理c语言空指针的值为 NULL,一般 NULL指针指向进程的最小地址 0 。视图通过空指针对数据进行访问,会导致运行时错误。 当程序试图解引用一个期望非空但实际为空的指针时,会发生空指针解引用错误,大部分情况下会导致程序崩溃。实例int* p = NULL;*p = 1; // 出错,程序崩溃应用Windows内核漏洞学习-空指针解引用...

2021-06-23 15:08:58 726

原创 [Node.js] 处理 Get&Post 请求

1

2021-06-18 09:58:16 119

转载 [Rootkit] 进程隐藏 - 内存加载(进程寄生)

众所周知,windows下可执行文件必须符合一定的格式要求,微软官方称之为PE文件(关于PE文件的详细介绍这里就不赘述了,google一下可以找到大把);用户在界面双击exe时,有个叫做explorer的进程会监测并接受到这个事件,然后根据注册表中的信息取得文件名,再以Explorer.exe这个文件名调用CreateProcess函数去运行用户双击的exe;PC中用户一般都是这样运行exe的,所以很多用户态的exe都是exlporer的子进程,用process hacker截图如下:那么这个explo

2021-06-11 10:37:09 1207 1

转载 [Rootkit] 无痕 hook - 硬件断点

hook方式有多种,这里做了一个系统性的总结对比,如下:https://www.cnblogs.com/theseventhson/p/14324562.html 之前这里做了接受消息的hook,用的就是最初级的hook方式: jmp到我们自己的处理逻辑。上面也分析了,这种方式缺点非常明显;最牛逼的神级hook:VT读写分离前面已经介绍过了,今天继续介绍高级的hook方式:硬件断点;现代软件开发,尤其是大型软件开发,绝对不可能一步到位,开发期间肯定存在各种bug。为了方便找到这些bug,软件上有专门

2021-06-10 20:57:05 3051

转载 [Rootkit] 进程替换

本文的进程替换是指将正在运行的程序的内存空间用恶意代码替换掉. 如果被替换的进程是合法的进程, 那么恶意代码可以披着合法的外衣干坏事了. 当然坏事干多了还是会被发现的.替换的过程如下:创建一个挂起状态(SUSPEND)的进程, 此时进程的主线程还未开始运行.读取主线程的上下文(CONTEXT), 并读取新创建进程的基址.使用NtUnmapViewOfSection将新创建的进程的内存空间释放掉, 随后可以开始填充恶意代码.设置主线程的上下文, 启动主线程.一. 我将恶意代码当成资源文件, 所

2021-06-10 20:39:11 196

转载 [Rootkit] dll 隐藏 - VAD

3环下要想隐藏dll,仅仅靠断链和抹去PE头信息是不够的;这样做能骗过同样在3环运行的调试器,但是骗不过在0环通过驱动做检测的PChunter、Process Hacker等工具;要想彻底隐藏,需要更进一步搞定驱动层的各种检测,下面会详细介绍隐藏的细节原理和操作方法!1、VAD 虚拟内存管理内存分两种:物理内存和虚拟内存;操作系统和进程共享物理内存,进程独享虚拟内存;物理内存可以通过CR3在进程之间互相隔离,确保进程之间互不侵犯;那么进程内部的虚拟地址该怎么管理了? 32位下,每个进程独享4GB内存,怎

2021-06-10 20:36:00 1895 3

原创 [VT 虚拟化] 资料整合

请转到以下链接食用 (* ̄(oo) ̄)intel:x86架构VT虚拟化(一):基本概念和流程简介intel:x86架构VT虚拟化(二):核心代码入门介绍intel:x86架构VT虚拟化(三):x64多核代码介绍intel:x86架构VT虚拟化(四):x64 无痕hook/shadow walker/页面读写分离...

2021-06-10 14:57:25 484

转载 [驱动开发] 驱动隐藏 - driveEntry返回失败

常见隐藏驱动的方式:驱动模块断链调用MiProcessLoadEntry删除驱动对象(据说不会触发PG)清理MmUnloadDriver List 和 PiDDBCacheTable两处driveEntry返回失败驱动模块加载后立即卸载今天介绍一种driveEntry返回失败隐藏驱动的方法 —— DriverEntry返回失败原理windows会根据DriverEntry的返回值判断驱动是否加载成功。如果返回成功,会在注册表详细记录,并将sys文件复制到System32/drivers

2021-06-10 11:30:13 1295

原创 [Node.js] VS2019 开发环境搭建 + Hello World 实例

安装 VS2019 里的 Node.js 支持:安装完成后还需要再去官网下载 Node.js (这一点我很无语,它不能内置在里面么)官网链接:https://nodejs.org/en/左边是稳定版本,右边是最新版本,我选择了稳定版:安装过程在此省略,无脑下一步即可,安装完成后需要重启电脑(因为配置了环境变量),重启后 cmd 输入 node 查看是否安装成功:打开 vs ,创建一个 空白 Node.js 控制台应用程序:可以选择直接在 vs 里启动,但它原始的代码里没有吸收回车,所以闪

2021-06-03 17:04:29 1663

原创 [Node.js] 入坑

什么是 Node.js官网的解释如下:Node.js 不是一门语言,也不是一个库或者框架,而是一个 js 的运行时环境,以前 js 只能依附于浏览器执行,有了 Node.js 后,js 可以脱离浏览器执行。并为 js 提供了一些服务器级别操作的 API。它构建在 Chrome 的 V8 引擎上。关于框架Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架:https://github.com/expressjs/expresssequelize 用来把面向对象的

2021-06-03 16:45:35 98

原创 [C#] 代码混淆和加壳

目的对比不同的主流保护工具,针对 dnSpy 反编译出的效果。非混淆代码:using System;using System.ComponentModel;using System.Drawing;using System.Windows.Forms;namespace test_winform{ // Token: 0x02000002 RID: 2 public class Form1 : Form { // Token: 0x06000001 RID: 1 RVA: 0x0

2021-05-26 19:00:34 8933 3

原创 [C#] 使用 dnSpy 反编译

介绍dnSpy是一款针对.NET程序的逆向工程工具 , 可以使用它反编译.NET代码。git 链接:https://github.com/dnspy/dnspy效果为了测试简单写了一个窗体程序,代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using Syste

2021-05-25 16:13:49 2957

原创 [DuiLib] 入坑资料收集

原生 DuiLib:https://github.com/duilib/duilib网易 DuiLib:https://github.com/netease-im/NIM_Duilib_Framework腾讯 DuiLib :https://github.com/tencentyun/TIMSDK/tree/master/cross-platform/Windows/IMApp/Basic/duilib?tdsourcetag=s_pcqq_aiomsgDuiLib 旗舰版:https://githu

2021-05-23 20:30:19 343

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除