<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[charge_release的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/charge_release</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; charge_release]]></copyright><item><title><![CDATA[windows7 sp1安装 vs2019]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/108150321</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/108150321</guid><author>charge_release</author><pubDate>Fri, 21 Aug 2020 16:45:36 +0800</pubDate><description><![CDATA[重装了win7 安装VS2019 发现有点麻烦， 记录一下
首先下载 .NET 4.6以上的框架，但是 安装会出错
因为缺少证书

https://blog.youkuaiyun.com/inchat/article/details/104294302

详情看上面的连接
之后安装.net框架完成 ，但是安装 visual studio Install 时， 会一直重复下载
那是因为缺少下面三个证书

下载链接：https://files.cnblogs.com/files/ATtuing/certificates.z]]></description><category></category></item><item><title><![CDATA[winrar目录穿越漏洞相关-ACE压缩文件的格式解析]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/88030313</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/88030313</guid><author>charge_release</author><pubDate>Thu, 28 Feb 2019 15:27:46 +0800</pubDate><description><![CDATA[漏洞验证的文章很多，不在介绍验证过程，可以参考
https://www.cnblogs.com/backlion/p/10417985.html
直接解析压缩文件的格式，可以手工打造一个利用漏洞的恶意文件

上图标记的蓝色部分是固定格式可以不变
具体为
6B 28 31 00 00 00 90 2A 2A 41 43 45 2A 2A 14 14
02 00 10 18 56 4E 97 4F F...]]></description><category></category></item><item><title><![CDATA[内网渗透-域渗透的记录]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/86495799</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/86495799</guid><author>charge_release</author><pubDate>Tue, 15 Jan 2019 17:05:56 +0800</pubDate><description><![CDATA[MS14-068漏洞提权（限制条件：打了补丁或者域中有Win2012/2012R2的域控）：
首先，需要拥有一台域内普通用户（假设为用户A）账户权限，知道此账户的账号密码。然后依次执行如下命令
1.
Ipconfig /all  //查询本机IP段，所在域等；记录所在的域的名字
Net group “domain controllers” /domain 查看域控制器
所以所在的域全名 WIN-D...]]></description><category></category></item><item><title><![CDATA[从证书库导出CER格式的证书]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/86488588</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/86488588</guid><author>charge_release</author><pubDate>Tue, 15 Jan 2019 10:37:04 +0800</pubDate><description><![CDATA[直接上代码
// 证书提取.cpp : 定义控制台应用程序的入口点。
//

#include &quot;stdafx.h&quot;
#include &amp;lt;wtypes.h&amp;gt;
#include&amp;lt;cryptuiapi.h&amp;gt;
#include &amp;lt;atlstr.h&amp;gt;


// Link with the Crypt32.lib file.
#pragma comment(lib, &quot;C...]]></description><category></category></item><item><title><![CDATA[C 语言 去字符串空格]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/82906331</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/82906331</guid><author>charge_release</author><pubDate>Sun, 30 Sep 2018 10:33:06 +0800</pubDate><description><![CDATA[void VS_StrTrim(char*pStr)
{
int i, j = 0;
for (int i = 0; i &amp;lt; strlen(pStr); i++)
if (pStr[i] != ’ ')
pStr[j++] = pStr[i];
pStr[j] = ‘\0’;
};

]]></description><category></category></item><item><title><![CDATA[输入表免杀方法]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/80612116</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/80612116</guid><author>charge_release</author><pubDate>Thu, 07 Jun 2018 17:06:08 +0800</pubDate><description><![CDATA[文章摘抄 http://www.weixianmanbu.com/article/1523.html

一、输入表函数移位法

这是最早也是比较简单的输人表免杀方法了，虽然效果已经不像当年那么好了，但却是学习免杀过程必须要掌握的基础知识。我们使用C32打开一个EXE文件，找到输入表段，找到我们定位出的特征输入表，比如ShellExecuteA就是，我们将其使用OO填充，然后在附近找到一片空白区域，...]]></description><category></category></item><item><title><![CDATA[从证书库导出PFX证书]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/77649472</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/77649472</guid><author>charge_release</author><pubDate>Mon, 28 Aug 2017 15:41:09 +0800</pubDate><description><![CDATA[首先了解下思路: 先 CertOpenStore 打开系统证书库  ,  然后  CertEnumCertificateContextProperties 判断带私钥的证书 , 再打开一个临时证书库把找到的证书放进去 CertAddCertificateContextToStore , 然后用 PFXExportCertStoreEx 导出证书. 
需要包含的头文件, 以及变量#include &quot;s]]></description><category></category></item><item><title><![CDATA[ActiveX控件加载资源]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/73368510</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/73368510</guid><author>charge_release</author><pubDate>Sat, 17 Jun 2017 08:28:43 +0800</pubDate><description><![CDATA[这两天写了一个 ActiveX 控件，实现加载一个 EXE，然后再创建一个 EXE。以前没有写过 ActiveX，所以做个记录当备份吧。 
  用的 VS2013，WIN7 64 旗舰版，首先创建一个 MFC ActiveX 项目。创建项目网上很多图片演示，就不放图了，创建完成把需要加载的 EXE 添加到资源里面，设定好类型。 
  // HINSTANCE hInstance = ::AfxGet]]></description><category></category></item><item><title><![CDATA[逆向问题记录]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/73368493</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/73368493</guid><author>charge_release</author><pubDate>Sat, 17 Jun 2017 08:20:42 +0800</pubDate><description><![CDATA[无法区分编译器自动生成的代码和自己编写的代码
解决：
源码对比法写对应编译器的 demo 程序与分析的程序进行对比分析之后再使用 OD 动态调试或是 IDA 静态分析总结出一些库或者 CALL 的特征，方便下段
 API 下断栈回溯跟踪法根据栈回溯分析关键跳而分析具体的算法，需要耐心，分析上下文当中的每一个 CALL 的参数和返回值信息以及一些敏感的内存写入或是访问代码IDA 的 F5 命令，反编译]]></description><category></category></item><item><title><![CDATA[#pragma warning(disable:4996)]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/72840787</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/72840787</guid><author>charge_release</author><pubDate>Fri, 02 Jun 2017 08:24:27 +0800</pubDate><description><![CDATA[今天读程序遇到了这句话，第一次看见。在网上搜到了如下资料：
pragma warning 只对当前文件有效（对于. h，对包含它的 cpp 也是有效的），而不是对整个工程的所有文件有效。当该文件编译结束，设置也就失去作用。
pragma warning(push) 存储当前报警设置。#pragma warning(push, n) 存储当前报警设置，并设置报警级别为 n。n 为从 1 到 4 的自然]]></description><category></category></item><item><title><![CDATA[调试器相关笔记]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52862280</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52862280</guid><author>charge_release</author><pubDate>Wed, 19 Oct 2016 19:11:21 +0800</pubDate><description><![CDATA[调试器的工作流程 
1 调试器进程和目标进程 
1.1 调试器进程和目标进程是两个独立的进程.两个进程拥有独立的内存地址. 
1.2 一般情况下,调试进程和目标进程的关系有两种,主要区别在于目标进程和调试进程谁先运行: 
1.2.1   目标进程由调试器进程创建(调试进程已经运行,目标进程尚未运行,调试器进程通过CreateProcess()创建目标进程.) 
1.2.2   调试器进程附加到目标进]]></description><category></category></item><item><title><![CDATA[逆向分析之核心代码的分析]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52851935</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52851935</guid><author>charge_release</author><pubDate>Tue, 18 Oct 2016 19:47:37 +0800</pubDate><description><![CDATA[个人感觉分析正常的(没有花指令)反汇编代码最大的挑战就是难以分清反汇编出的代码是用户的代码还是库的代码,还是编译器插入的代码.克服这一关需要丰富的经验. 因此. 逆向的入门大多数是难倒在这一关上. 这一关挺过去了,逆向也就入门了. 
除了上述这一挑战. 当然还有来自其他方面许许多多的挑战.1. 识别一个函数 
程序都是以函数为一个单位. 函数内的多条代码使函数完成了特定的功能, 在分析当中也是以一个]]></description><category></category></item><item><title><![CDATA[逆向分析之核心代码的定位]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52851870</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52851870</guid><author>charge_release</author><pubDate>Tue, 18 Oct 2016 19:39:34 +0800</pubDate><description><![CDATA[逆向一般是带有强烈的目的性的, 比如逆出一个程序的某种功能的实现函数,或者是逆出一个程序的流程等等.  
    要完成这样的功能就需要定位到具体的函数上, 然后才能分析其代码,否则在庞大的二进制流中, 信息的获取必定是极其艰难的. 
    在庞大的二进制流中找到一个地址未知的函数. 需要推测这个函数的一些特征,没有特征就很难定位到这个函数. 因为在庞大的二进制流中有着上万乃至数十万行以上的机器码]]></description><category></category></item><item><title><![CDATA[PE文件（三）]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52228444</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52228444</guid><author>charge_release</author><pubDate>Wed, 17 Aug 2016 10:20:55 +0800</pubDate><description><![CDATA[节表，又叫区段表，区段表是我们直接探索的最后位置了，区段是不需要直接解析的地方。 
区段表存储着PE文件的一些属性，区段表是一个由若干个结构体依次排列组成的，每一个结构体代表着PE文件主体中的一段数据的属性，也就是每一个区段头都对应着PE文件主体的一段数据，这段数据叫做节或者叫区段，区段表规定了区段（节）的属性。 
下面是节的定义typedef struct _IMAGE_SECTION_HEADE]]></description><category></category></item><item><title><![CDATA[PE文件（二）]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52224839</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52224839</guid><author>charge_release</author><pubDate>Tue, 16 Aug 2016 20:39:33 +0800</pubDate><description><![CDATA[上篇讲到的PE文件DOS头中的两个重要成员，一个是e_magic 用来判段是否为PE文件，另一个  e_lfanew用来找出NT头的位置。在DOS头与NT头 之间还有一部分区域，这里储存着一些被DOS头使用的数据，包括一些字符串等等，这部分的大小不太确定，所以，NT头的具体位置要由DOS头的最后一个成员来确定 。 我们可以利用这一部分空间实现一些特殊用途。NT头的定义typedef struct _]]></description><category></category></item><item><title><![CDATA[PE文件（一）]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52224272</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52224272</guid><author>charge_release</author><pubDate>Tue, 16 Aug 2016 19:34:00 +0800</pubDate><description><![CDATA[PE文件是指某一种格式的文件，exe，dll，sys等等 ，都是PE格式的文件。 
PE文件大体可以分为两部分，头和主体，两个部分都会在内部进行细分，头由几个结构体组成，含这个文件一些描述信息，主体由多个段组成，包含文件的可执行代码和一些执行时要使用的资源，数据等等。 
下面这张网上找的图作为参考 
 
首先我们来看DOS头，DOS头是用来兼容DOS系统的，定义如下typedef struct _I]]></description><category></category></item><item><title><![CDATA[进程间的通讯之油槽]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52183597</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52183597</guid><author>charge_release</author><pubDate>Thu, 11 Aug 2016 16:05:27 +0800</pubDate><description><![CDATA[油槽是windows系统中最简单的一种进程间通讯的方式，一个进程可以创建一个油槽，其他进程可以通过打开此油槽与创建油槽的进程通讯；油槽的通讯时单向的，只有服务端才能从油槽中读取消息，客户端只能写入消息，消息被写入后以队列的方式保存（先进后出）；油槽除了可以在本机内进行通讯外，还可以在主机间进程通讯（使用UDP协议），想要通过网络进行油槽通讯，必须要知道服务端的主机名或域名。 
  油槽客户端：#in]]></description><category></category></item><item><title><![CDATA[枚举某一进程的线程]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52183338</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52183338</guid><author>charge_release</author><pubDate>Thu, 11 Aug 2016 15:46:20 +0800</pubDate><description><![CDATA[#include "stdafx.h"
#include <windows.h>
#include <TlHelp32.h>
void ListThread(DWORD dwPid)
{
    HANDLE hSnap = 
        CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
    THREADENTRY32 te = {sizeof(]]></description><category></category></item><item><title><![CDATA[遍历某一个进程的模块]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52183272</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52183272</guid><author>charge_release</author><pubDate>Thu, 11 Aug 2016 15:41:57 +0800</pubDate><description><![CDATA[#include "stdafx.h"
#include <windows.h>
#include <TlHelp32.h>
#include <locale.h>
bool GetModuleList(DWORD dwPId) {
    HANDLE        hModuleSnap = INVALID_HANDLE_VALUE;
    MODULEENTRY32 me32 = { siz]]></description><category></category></item><item><title><![CDATA[遍历进程，结束进程]]></title><link>https://blog.youkuaiyun.com/charge_release/article/details/52182600</link><guid>https://blog.youkuaiyun.com/charge_release/article/details/52182600</guid><author>charge_release</author><pubDate>Thu, 11 Aug 2016 14:53:22 +0800</pubDate><description><![CDATA[#include "stdafx.h"
#include <windows.h>
#include <TlHelp32.h>
#include <locale.h>
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "chs");
    HANDLE hSnap = 
        CreateToolhelp32Snaps]]></description><category></category></item></channel></rss>