自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 黑猫与白猫

“不管黑猫白猫,捉到老鼠就是好猫”前言:开个随笔栏吧!笔者平时偶尔分享些简单技术方面的知识,思考性的总结或想法往往要么存在脑海中,要么一闪而过。不落地的主要原因还是觉得自我学时思想太过疏浅,怕说的不够好。经常会听到部分人对编程语言或技术实现方法的负面评价,例如易语言还有类似于前两篇笔者利用模拟键盘操作完成小功能实现的解决方法。一个单词总结形容就是“low”。所以借此结合前两篇文章简要聊一聊。背景一:python简单小脚本:模拟键盘爬取VirusTotal样本信息,这篇文章的事情背景发生在.

2021-02-05 02:06:16 503 2

原创 python简单小脚本:模拟键盘爬取VirusTotal样本信息

背景:当时通宵写incaseformat病毒报告时,有个需求:根据我们收集的6000个相关样本sha256去VT爬取对应的First Submission。由于之前用过VT提供的API,所以以为这个接口也会提供的,查了VT接口文档后,凉凉,只对付费用户开放!在尝试了普通爬虫姿势和Selenium后,尝试了很久还是没法搞定,但是活还得做。属实无奈,只好采用了模拟键盘操作的方式,将样本分成了10份,叫了几个同事一起运行,才完成了相关需求。此篇文章的目的不是为了给大家看这么一种比较笨拙的爬虫方式,而是

2021-02-05 00:26:36 933

原创 x64dbgpy安装及动态函数名称获取

背景:在分析一些大家族病毒样本核心层时(如:Emotet、LokiBot等)经常会发现它们的导入函数很少,需要用哪个函数时,都是根据函数名称hash动态获取的。此类特征也可以作为一个启发查杀点,日后有空再谈!通常遇到这种情况我们想要知道调的是哪个api,都是动态调试过去看下,但是那么多加密的函数名称,总不能动态一个一个过去看,然后手动在ida上标明,毕竟动态分析相比于静态分析还是比较耗时的,那么有什么办法可以跑一次样本,然后获取我们所需的所有api函数名称,以及对应地址呢?有了这个log的话,我们就可以

2021-02-04 00:58:36 1642 2

原创 C语言实现shellcode通用框架二:文件下载执行或内存加载

简介:承接接上篇。上篇(C语言实现shellcode通用框架一:解密执行)我们的第二层shellcode核心代码都是事先加密好嵌套在第一层shellcode中,核心代码更新起来不方便。所以联网更新显得尤为重要。大家可以选择内存加载,这样可以避免落地被杀软查杀,也可以选择落地,随意选择,思想和代码很重要。其实,这篇介绍的shellcode框架代码和上篇大同小异,无非是API、动态库多了一些,代码量有所变大,但是核心思想,代码逻辑还是一样的。开下源,希望对大家学习有所帮助。关于内存加载那块我注释并标出了,使

2021-01-21 23:44:57 1108

原创 C语言实现shellcode通用框架一:文件解密执行

简介:之前写的代码,开下源。相当于shellcode里面套了一段解密shellcode,可以贴在PE文件后面,改入口点,最后执行完成以后再跳回来。最主要的还是要学习一下,shellcode框架怎么写,怎么地址无关,怎么随心所欲的调自己想要的API。这个知道了,就可以随便写shellcode了,但是注意shellcode中字符串的初始化格式,都是以字符数组的格式保存,这样才能地址无关!!!!!下面看代码就行,希望对大家有所帮助。#include <Windows.h>FARPROC

2021-01-21 23:30:07 554

原创 Python+Selenium实现爬取anyrun样本md5

背景:之前遇到一个需求,需要看下anyrun一年的新样本。我们库里样本很多,只要有md5,基本许多都可以下到。所以就爬一下anyrun的吧!个人反爬虫技术有限,没想到更好的方法去爬anyrun,用了相对笨的方法Selenium大法。简单分享下,希望大家有所学习!代码如下 :import timeimport reimport sysfrom selenium import webdriverfrom selenium.webdriver.support.wait import WebD

2021-01-19 23:56:26 576 6

原创 开源一个IDA小插件:修复VMP dump导入函数

简述:通常我们在静态分析vmp加壳后的程序或者驱动时,都会选择将其跑开然后看dump文件。但是vmp会将某些函数地址进行混淆,所以当我们想看一个函数时,常常会见到如下图所示代码段:面对上述情况,我之前一般都是默默的打开计算器,人肉去算地址,然后看落在哪个模块上,把对应模块扣出来,改基址,接着根据算出的地址看是哪个对应函数,最后回到dump文件,将名字标上!算一个,两个还能忍,但是当面对无数这样的函数,甚至说你算到最后发现竟然是之前已经标过的函数时,头已经大了。于是,在经历这样的折磨之后,写了一个ID

2021-01-19 01:28:30 2369

原创 驱动对抗(一):ELAM驱动加载与驱动过滤

驱动对抗现状:问题:由于3环权限低,越来越多的病毒不屑于在3环搞事。在处理用户的一些病毒问题时,除了流氓软件,最多的还是rootkit这一类病毒(关于rootkit病毒的介绍,常见操作和危害不在此处讨论,以后笔者可以单独开一篇博文聊聊)。有些用户遇到3环问题还能自己想办法解决一下,通过修改劫持首页的注册表、快捷方式或者卸载恶意流氓软件等等就可以解决问题。但是,面对rootkit类病毒问题时,绝大多数的用户还是不知道或者不敢轻易去自己解决,一方面由于相关处理经验不足,另一个是怕出什么问题导致蓝屏或者系

2021-01-17 17:07:48 1689

原创 Windows简单驱动编程(三):SSDT HOOK

ssdt hook NtOpenProcesswin7 32环境,注释已标明一些解释#include <ntddk.h>#include <ntstatus.h>ULONG uOldNtOpenProcess;//定义system_service_table结构体typedef struct _KSYSTEM_SERVICE_TABLE{ PULO...

2019-12-09 22:35:16 559

原创 Windows简单驱动编程(二):内核中文件创建和写入

驱动中对文件的创建和写入,涉及对象的创建和初始化。有个坑:原以为下面这三行代码可以方便自己调试,能够自动区分调试状态和非调试状态,结果被坑了一下,如果直接加载驱动,会蓝屏。调试模式下不蓝。。所以,如果不调试的话得注掉。#if DBG: _asm int 3;#endif // DBG:驱动关于文件的简单创建和写入代码如下:#include <ntddk.h&gt...

2019-12-03 00:40:00 1080 1

原创 Windows简单驱动编程(一):内核中常见的字符串操作

开发环境:win10+vs2019+wdk10+vm_win7_x86本文内容:介绍内核中常见的字符串操作,字符串定义,字符串初始化,字符串复制,连接,比较。说明:环境部分大家自己装,网上教程很多,这里就不重复了。由于自己内核,驱动这方面知识缺乏,怕工作中偶尔碰见这样的病毒,绕不过的,只得学!大家加油!直接贴代码,注释我都标好了。#include <ntddk.h>#...

2019-12-02 01:10:57 708 1

原创 RSA-4096勒索病毒分析

文章目录说明:一、样本信息:二、分析环境及工具:三、基础病毒分析:基础静态分析:基础动态分析:四、详细病毒分析:样本1分析:样本PE1分析:五、病毒行为流程总结:六、技术思考总结:七、防护建议:八、相关IOC:说明:  萌新一枚,这是面试过程中面试官要求分析的另外一个病毒程序,整理成文,发表出来,供大家参考学习,一起进步!如有不当之处,也希望大佬批评指正,晚辈一定虚心受教。由于考虑到时间问题还...

2019-05-12 21:19:43 2122

原创 Python+Selenium实现问卷星自动填写和选择

Python实现问卷星自动填写和选择昨天,朋友找我填个问卷作为毕业论文数据支撑,但是无奈根本没人填写,只好他自己一份一份的填写,数据也都是怎么合适自己的论文写作怎么来,我填了一份就想吐了,只好祭出我的大Python,帮他搞定吧,谁叫我乐于助人哈哈哈!电话沟通好需求,我又给他加了些数据上下关联,开搞!主要采用Python+Selenium来实现from selenium import ...

2019-05-05 16:26:00 7696 5

原创 GandCrab V2.0 详细分析

GandCrab V2.0 详细分析说明:一、前言:二、行为概述:样本信息:样本来源:VirusTotal:三、病毒分析环境及工具:四、基础病毒分析:查壳:使用IDA与Resource Hack进行基础静态分析:使用火绒剑进行基础动态分析:五、详细病毒分析:解密shellcode分析:Shellcode分析:PE2.dll分析:初始化部分:网络部分:加密部分:GandCrab V2.0 行为流程总...

2019-04-12 20:27:06 1607

原创 栈溢出基本原理的简单讲解

栈溢出基本原理的简单讲解(新手上路,大牛还请自行跳过,不足之处,欢迎批评指正)一 、预备知识:缓冲区溢出简单介绍缓冲区溢出:简单的说,缓冲区溢出就是超长的数据向小缓冲区复制,导致数据超出了小缓冲区,导致缓冲区其他的数据遭到破坏,这就是缓冲区溢出。而栈溢出是缓冲区溢出的一种,也是最常见的。只不过栈溢出发生在栈,堆溢出发生在堆,其实都是一样的。栈的简单介绍栈:栈是一种计算机系...

2019-03-31 22:37:24 33248 5

原创 Qt界面版DLL注入与卸载程序实现

实现功能:dll注入和卸载使用工具:Qt实现截面图:实现代码移步Github:https://github.com/YanStar/QtDllInject

2019-03-31 22:21:18 2158 1

原创 RSA加密与解密

#include <stdio.h>#include <Windows.h>#include <tchar.h>void ShowError(char *pszText);BOOL GenCreateKey(BYTE **ppPublicKey, DWORD *pdwPublicKeyLength, BYTE **ppPrivateKey, DWOR...

2019-03-20 15:30:11 699

原创 AES加密与解密

#include <Windows.h>#include <tchar.h>#include <stdio.h>void ShowError(char *pszText);BOOL AesEncrypt(BYTE *pPassword, DWORD dwPasswordLength, BYTE *pData, DWORD &dwDataLe...

2019-03-19 22:04:57 568

原创 HASH加密

#include<Windows.h>#include <stdio.h>#include <tchar.h>void ShowError(char* pszText);BOOL GetFileData(char* pszFilePath, BYTE **ppFileData, DWORD *pdwFileDataLength);BOOL Ca...

2019-03-19 22:00:25 920

原创 小工具(文件搜索)

// SearchFile.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include &lt;Windows.h&gt;void SearchFile(char *pszDirectory);int _tmain(int argc, _TCHAR* argv[]){ SearchFile("C:"); system("pause"...

2019-03-16 00:35:28 1099

原创 小工具(屏幕截图加鼠标绘制)

#include "stdafx.h"#include &lt;Windows.h&gt;#include &lt;atlimage.h&gt;#include "ScreenCapture.h"BOOL ScreenCapture(){ HWND hDesktopWnd = GetDesktopWindow(); HDC hdc = GetDC(hDesktopWnd); H...

2019-03-16 00:34:07 969

原创 小工具(保存键盘输出)

//RawInputTest.h#include &lt;Windows.h&gt;void ShowError(char *pszText);BOOL Init(HWND hWnd);BOOL GetData(LPARAM lParam);void SaveKey(USHORT usVKey);//VirtualKeyToAscii.h#ifndef _VIRTUAL_KEY...

2019-03-16 00:31:44 422

原创 小工具(远程Cmd)

// RemoteCmd.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include &lt;Windows.h&gt;BOOL PipeCmd(char *pszCmd, char *pszResultBuffer, DWORD dwResultBufferSize);void ShowError(char *pszText);int...

2019-03-16 00:27:33 1287

原创 小工具(监视文件变化)

// MonitorFile.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "MonitorFileTest.h"int _tmain(int argc, _TCHAR* argv[]){ MonitorFile("C:\\CloudMusic\\"); printf("monitor...\n"); getchar()...

2019-03-16 00:24:25 948

原创 释放程序资源

首先将一个520.txt作为文件的资源#include &lt;Windows.h&gt;#include &lt;stdio.h&gt;#include "resource.h"bool FreeMyResource(UINT uiResouceName, WCHAR *lpszResourceType, char *lpszSaveFileName);int main(){...

2019-03-16 00:18:30 733

原创 进程权限提升

// AdjustTokenPrivilege.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include &lt;Windows.h&gt;#include "enable.h"int _tmain(int argc, _TCHAR* argv[]){ if (FALSE == EnbalePrivileges(GetCurrentP...

2019-03-13 11:17:31 352

原创 创建互斥体

// CreatMutex_Test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include &lt;Windows.h&gt;#include &lt;stdio.h&gt;bool IsAlreadyRun(){ HANDLE hMutex = NULL; hMutex = CreateMutexA(NULL, FALS...

2019-03-13 11:16:03 484

原创 键盘HOOK

inject.exe#include "stdio.h"#include &lt;Windows.h&gt;#include &lt;conio.h&gt;#define DEF_DLL_NAME "I:\\VS2013Project\\windows_hack_base_code\\hook\\inject\\Debug\\keyhook.dll"#define DEF_HOO...

2019-03-13 11:14:09 923

原创 进程伪装代码

// DisguiseProcess.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "DisguiseProcess.h"int _tmain(int argc, _TCHAR* argv[]){ if (FALSE == DisguiseProcess(9540, L"C:\\Windows\\explorer.exe"...

2019-03-13 11:11:05 2555 3

原创 将Dll加载进内存

MmLoadDll.cpp#include "stdafx.h"#include &lt;windows.h&gt;#include "MmLoadDll.h"void ShowError(char *lpszText){ char szErr[MAX_PATH] = { 0 }; sprintf(szErr, "%s Error [%d]\n", lpszText, G...

2019-03-13 11:08:22 1621 4

原创 启动程序(三种方式)

三种启动方式:winexec、shellexecute、createprocess// excute_exe.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include &lt;Windows.h&gt;BOOL WinExe_Test(char *pszExePath, UINT uiCmdShow);BOOL ShellExecute...

2019-03-13 11:04:05 3662

原创 注入(创建远程线程)

#define _CRT_SECURE_NO_WARNINGS#include &lt;windows.h&gt;#include &lt;tchar.h&gt;#include &lt;stdio.h&gt;void ShowError(char *pszText);BOOL EnbalePrivileges(HANDLE hProcess, wchar_t *pszPrivile...

2019-03-13 10:59:31 599

原创 自启动(注册表)

set_reg.cpp#include "stdafx.h"#include &lt;windows.h&gt;void ShowError(char *lpszText){ char szBuff[MAX_PATH] = { 0 }; sprintf(szBuff, "%s Error [%d]", lpszText, GetLastError()); MessageBo...

2019-03-13 10:56:55 537

原创 自启动(放入自启动文件夹下)

// auto_run_startup.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include &lt;Windows.h&gt;#include &lt;ShlObj.h&gt;BOOL Auto_Startup(char *lpszScrFilePath, char *lpszDestFileName){ BOOL bRet =...

2019-03-13 10:54:06 802

原创 自启动(注册成服务)

ServicewOperate.cpp#include "stdafx.h"#include &lt;Windows.h&gt;#include "ServicewOperate.h"void ShowError(char *lpszText){ char szErr[MAX_PATH] = { 0 }; sprintf(szErr, "%s ERROR [%d]", lpsz...

2019-03-13 10:50:53 517

原创 C语言——PE文件解析(完整版)

此次PE文件解析的内容:PE头、节表、导入表、导出表、重定位表语言:C语言编译器:VS2013运行环境:win10注:由于时间(懒)关系,备注的比较少,看不懂的地方,欢迎留言一起交流,也欢迎指正不当之处#include &lt;stdio.h&gt;#include &lt;windows.h&gt;IMAGE_DOS_HEADER DosHeader;PIMAGE_...

2018-11-15 10:56:56 7509 6

原创 SQL注入总结(六)

如何防御SQL注入?答:采用sql语句预编译和绑定变量,是防御sql注入的最佳方法采用了PreparedStatement,就会将sql语句:"select id, nofromuserwhere id=?"预先编译好,也就是SQL引擎会预先进行语法分析,产生语法树,生成执行计划,也就是说,后面你输入的参数,无论你输入的是什么,都不会影响该sql语句的 语法结构了,因为语法分析已经...

2018-08-07 16:17:07 190

原创 SQL注入总结(五)

常见的搭建组合: 脚本格式 数据库 搭建品台 操作系统 Asp Access,SqlServer IIS Windows Php Mysql,postsql Apache,I...

2018-08-07 16:05:14 186

原创 SQL注入总结(四)

WAF绕过:(web application firewall)从架构层绕过waf从资源角度绕过waf从协议层面绕过waf从规则缺陷绕过waf1.从架构层绕过waf1.1寻找源站如果流量都没有经过waaf,waf当然无法拦截攻击请求。当前许多云waf架构,例如:百度云加速,360安全卫士等,通过更改DNS解析,把流量引入waf集群,流量经过检测后转发请求到源站云wa...

2018-08-07 16:03:19 695

原创 SQL注入总结(三)

宽字节注入:什么是宽字节?:如果一个字符大小为一个字节的我们称为窄字节如果一个字符大小为两个或两个字节以上的我们称为宽字节(像GB2312,GBK,GB18030等编码方式都是宽字节,实际为两个字节)宽字节注入原理:开发人员意识到SQL注入的危害,最初防御方法就是用函数addslashes对特殊符号进行转译,把’转化为\’,让它不能和前面的’闭合,使得后面的语句不能执行,防范S...

2018-08-07 16:01:23 406

空空如也

空空如也

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

TA关注的人

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