- 博客(101)
- 资源 (1)
- 收藏
- 关注
原创 spoof_call的分析与改进
UnKnoWnCheaTs分享过一个x64伪造函数调用栈/返回地址的文章针对其原理做个简要分析,修复部分使用问题,以及重构了个简单版本的代码(增加少量代码执行量简化代码逻辑)
2022-08-14 16:04:52
1381
3
原创 LLVM PASS--虚函数保护
虚函数实现分析CPP实现:#include <iostream>class Test{public: Test() noexcept { printf("Test::Test()\n"); } virtual ~Test() { printf("Virtual ~Test()\n"); } virtual void prointer() = 0; virtual void pointf
2022-02-27 22:12:28
4651
原创 use after free & double free利用
在fastbin下的use after free & double free利用double free + fastbin attack = 任意地址写在malloc()时,当用户所要求内存大小在 fastbin 的大小范围时,malloc()优先从fastbin中拿出chunk规则:释放堆插入到head后的第一个chunk;分配堆释放head后的第一个chunk初始状态[head]—>[chunk1:next,…]—>[chunk2:null]此时申请了两个堆:[hea
2022-02-24 19:21:50
372
原创 LLVM 13.1 new Pass插件形式 [for win]
LLVM 13.1 new Pass插件形式 [for win]4大关键点:LLVM 13.1版本(当前最新版)windows平台上的pass demonew pass形式(非legacy)clang 动态插件形式(pass插件与llvm本体编译分离)背景:当前外部资料均为老版本LLVM + legacy模式的pass,和当前llvm版本脱节,新模式下没资料就自己研究了下,具体新旧LLVM版本对pass的编写有啥影响,具体原因是啥,怎么做能兼容旧版本见我的上一篇文章(设计新旧异同分析的原理
2022-02-21 00:46:51
5109
原创 windows上的LLVM pass瞎折腾记录
windows上的LLVM pass瞎折腾记录想着了解下LLVM的代码和编译过程,就从写LLVM pass入手吧,结果环境搞了半天,做个踩坑记录…文章最后有逐步骤的操作记录,Tips内记录关键点和思路Tips:首先不要在win上折腾llvm pass(本篇结束…),官方不支持得改代码,但是折腾一半实在是杠上了,所以还是硬着头皮搞了LLVM-PROJECT是各种工程的集合,写pass的话关注c+/c++前端clang,IR优化器opt这两个工程就好LLVM不同版本间插件很大,很多网络上的资料隔一
2022-02-15 01:06:10
1032
原创 LUA 源码浅析
LUAJIT学习研究记录工作后好久没写博客了,感觉还是不能把博客丢掉,无论是大学时代的积累还是工作时期的感悟,不涉及敏感信息的还是以文字的形式记录下来会比较好。因为是个人记录类博客,所以跨得领域也许会比较广,可能是朋友圈的看到某文后的感悟,亦或是Github上看到的某个项目。这期就开的这个新系列,是想仔细读一读LUAJIT的源码,了解一下工程架构。后续可能还会有虚拟机类的系列文章,写写博客也算是督促自己的学习啦,大概想分为一下几类,这个文章是导航类,暂时先写个开头,后续慢慢补充喽LUA源码阅读采用Lu
2020-07-23 02:25:58
771
原创 利用未开启SafeSEH的模块绕过SafeSEH机制的细节问题
SafeSEH机制及绕过方式简介1.SafeSEH会在程序编译的时候保存一份程序所使用的所有异常处理函数的地址如列表table[0]:0x40000100 handler1table[1]:0x40000200 handler2table[2]:0x40000300 handler32.且在进行异常处理的时候会检测handle地址所在的PE文件的异常处理函数的地址表中因为只有开启了S...
2019-03-12 00:19:28
442
1
原创 使用C调用Python,混合编程笔记
目的1.由于微博网页结构再次更新导致之前的微博爬虫版本已经不能使用,所以对Python爬虫进行了一次更新2.学习下如何使用Python与C进行交互,即如何将Python嵌入C++程序中3.记录下进行此项工程时遇到的几个坑,以及如何结果/规避前段时间实习工作的时候有听过Electron架构,本来是想学习一波的,但是由于对nodejs了解实在太少,想进行下去难度还是挺大的,不过如果是Pytho...
2019-01-04 20:51:19
634
原创 LoadLibrary----windows10/7/xp
之前写的dll注入工具在windows 10下始终没法使用,跟踪调试后发现问题不在NtCreateThreadEx这里而在LoadLibraryW函数的使用上…………….. LoadLibraryW函数想加载D盘下的hack.dll时 如果写成LoadLibraryW(L"d:hack.dll")这样在xp下测试不会出现问题,但是在windows 10 下会出现找不到dll的错误规...
2018-07-03 18:25:49
668
原创 MFC框架的DES文件加密机
TIPS: 1.选择 项目 属性,字符集哪里选择使用多字节字符集,不要用UNICODE字符集 2.项目在Windows 10 + VS2017 + X64 +Release下编译测试通过,非X64版本部分API接口可能不一样 3.肯定有BUG,后续有机会就修,暂时没发现 4.DES算法接口和上篇的算法部分有些许改动 5.CBC模式为外部实现,即DES算法部分只能做ECB模式,确实有点难受...
2018-06-26 15:46:34
1805
原创 C++实现DES加密----算法
我的第一篇博客就是:C语言实现DES加密 今天重写的时候发现好像代码传错了,有些尴尬,其中有各种奇怪的问题….. 问题1.好多表,包括s盒之类的写成char类型了,应该写int类型才对 问题2.好多变量没声明就用了 问题3.为啥我当时要写这么多static??? 问题4.没头文件,代码全挤在cpp里面了更新修复下问题:C++实现DES加密—-算法篇test.h#inclu......
2018-06-26 15:31:55
13807
14
原创 X64下进程隐藏实现与Debug
之前写过几篇进程隐藏的技术贴,但是在X64下代码没有成功,昨晚深入调试了一会儿发现了问题所在,这里详细探讨下先贴上完整的Hide.dll的cpp代码:#include "Hide.h"#define SystemProcessInformation 5#define STATUS_SUCCESS (0x00000000L)#define STATUS_...
2018-06-26 15:31:06
3336
2
原创 破解WinRAR去广告弹窗
WinRAR每次启动都会弹出广告,分析后发现去广告挺容易的…..仅作技术交流使用,切勿用于破解传播哦~1.目标:32位WinRAR去广告弹窗,单文件ko2.OD载入找窗口相关的API调用发现有CreateWindowEx的调用,全部下断 3.F9运行记录哪个调用负责创建广告弹窗. 记录发现窗口类名为SysListView32的call调用完后主窗口出现 窗口类名为RarHtmlC...
2018-06-24 01:27:33
1002
原创 Windbg Preview调试分析CreateToolhelp32Snapshot
进程隐藏的时候并没有对CreateToolhelp32Snapshot进行Hook,而是Hook了ZwQuerySystemInformation,写了一个调用CreateToolhelp32Snapshot显示进程的小程序,分析一下,顺便了解下Windbg Preview怎么用.1. 应用商店搜索Windbg Preview下载,界面比原来的版本好看很多,而且也有更多地功能区,各种方便,推...
2018-06-03 18:18:26
3231
1
原创 逆向分析从x86到x64Tips
Tips1 在之前写的一篇文章 3环下的进程隐藏—-64位windows 10 中的提出的一个疑问: 本来以为x64下的地址为8字节,所以jmp 的address需要 -9 的,结果调试发现还是和x86一样 -5 就行了…..这里就是 x86—->x64 逆向分析过程中需要特别注意的一点,jmp指令和call指令的变化 虽然在OD下有很多跳转指令jmp xxxxx,但是去仔...
2018-05-31 20:19:16
835
原创 远程代码注入
TIPS 1. 之前写进程隐藏的时候写了个dll注入工具,这个工具会想目标进程写入dll名称,然后利用loadlirary加载dll。如何让那个程序调用loadlirary的呢?是用了CreateRemoteThread这个函数,翻译过来就是创建远程线程,为什么微软要提供一个这样的函数呢?其实并不是微软特地提供的给我们注入的API,这个API的实际作用其实是创建远程线程,创建的线程原型是DWO...
2018-05-29 22:16:14
993
原创 IAT-Hook 劫持进程Api调用
✪ω✪ 鹅厂面试的时候回答劫持API的各种Hook方式的时候,IAT-Hook应该算是最简单的一个。比IAT-Hook更难的是R3的5字节Hook,然后是热补丁Hook,SSDT-Hook….. 5字节Hook在前两篇进程隐藏中用过了,7字节主要是对API的要求比较高,这篇就更新IAT-Hook的实现代码,后续再更新复制原始API部分代码的热补丁Hook和SSDT-HookT_T 本来昨...
2018-05-28 16:40:45
2625
1
原创 3环下的进程隐藏----64位windows 10
搞了两天还没搞定,记录下这两天分析的结论和疑惑吧。。。。。 1. MSDN说ZwQuerySystemInformation这个API在windows 8以上取消了,x86的GetProcAddress是可以找到ZwQuerySystemInformation这个API的,x64的GetProcAddress找到了一个名字不一样的API叫RtlGetNativeSystemInformatio...
2018-05-27 15:24:01
2187
原创 3环下进程隐藏------持续隐藏防新开
因为上篇进程隐藏存在这一些缺陷,比如只能对当前打开的任务管理器隐藏,关闭任务管理器重开就无法隐藏了,原因很简单,因为重开的任务管理器并没有被我们Hook,自然无效Notes: 1.新版进程隐藏致力于解决这个问题 HideProc负责将Dll注入explorer.exe 和已经运行的 taskmgr.exe DLL加入自动识别模块,如果自身被注入到taskmgr.exe则Hook ZwQu...
2018-05-23 18:29:45
1057
原创 3环下进程隐藏
分析&注意事项 1.隐藏指定进程,即程序调用CreateToolhelp32Snapshot这个函数得到的进程链表中不能有我们需要隐藏的进程 2.除了CreateToolhelp32Snapshot可以遍历进程外还有EnumProcess也可以。逆向显示,这两个API都是调用一个更加底层的函数从内核层取得进程结构链表的,叫ZwQuerySystemInformation,属于ntdll...
2018-05-22 22:57:21
647
原创 CyxvcProtect加壳程序研究与改进
花了2天时间读了一份完整的PE文件加壳源码,源码比较基础,没有使用代码偷取技术也没有使用反调试的应用。作为学习加壳程序编写的典型项目非常好用,原作者编码习惯非常棒,条例十分清晰,非常适合初学者学习。所以我在一边学习他的编写思路的情况下一边学习加壳技术,后续学习到的新技术都会在这个代码的基础上加以改进。 这篇博文写之前已经完成了一些较为简单的改进。 Github项目地址:CyxvcP...
2018-05-19 17:45:30
800
原创 还原0day----覆盖虚函数突破GS
接上一篇,与vc++6.0(并没有GS安全机制)不一样的是,vs2008启用GS后的实例内存布局有些不一样,结合0day代码探究下突破GS的具体细节 C++代码:vs2008 release 优化禁用#include "stdafx.h"#include "string.h"class GSVirtual {public : void gsv(char * src) ...
2018-05-12 22:23:05
453
原创 堆溢出&异常处理&探究虚函数&多态的实质
前两天跟着《0day》堆溢出部分研究了一下一直不太清楚的堆溢出原理,不同于栈溢出,堆溢出的难度确实很大,但是理解了之后其实也不难,栈溢出后可以通过返回地址的修改控制EIP寄存器从而得到程序的控制权。但是堆区写入得都是纯数据啊,怎么可能能控制EIP寄存器呢?堆溢出是怎么获得程序控制权的呢,这是我一直困惑的一点。 看完之后恍然大悟啊,如果说栈溢出是主动控制EIP的话,堆溢出就是被动控制EIP,堆区写...
2018-05-12 13:19:45
349
原创 修改PE文件实现静态DLL注入
向PE文件注入DLL一般来说分为两种,一种是动态的,就是在程序运行中注入。还有一种是静态的,也就是修改PE文件达到DLL注入的效果。直接上实验步骤实验(经过处理的NotePad,输入表下面有大量0000空余,无需进行移位操作): 1.LoadPE查看输入表 可以看到输入表的RVA是00007604,转化成文件偏移是6A04(用LoadPE中的位置计算器计算),c32找到6A04处 2...
2018-05-07 19:39:00
5316
原创 PE文件填充.dll原理解析
作为和杀毒软件的对抗技术出现的无特征码处理中一个比较小众,但是效果明显的技术就是.dll填充。而且作为一个上手即可使用毫无副作用的技术,作为预处理效果也非常明显。但是一直很疑惑为什么可以把输入表中的.dll填充了却不会影响程序的运行。下面会从PE装载器和loadlibrary的汇编代码角度解析这个问题。.dll填充简介: c32载入文件,把输入表中一些关键dll的.dll4个字节填充为000...
2018-04-08 13:33:25
663
原创 com感染病毒分析
先附上com病毒的源码 virus.asmCSEG SEGMENT ASSUME CS:CSEG,DS:CSEG,SS:CSEG main PROC NEAR mainstart: CALL vstartvstart: POP SIMOV BP,SIPUSH SI MOV AH,9 ADD SI,OFFSET message-OFFSET vstartMOV DX,S...
2018-04-02 16:51:17
2259
原创 病毒反调试跟踪
跟踪一个反调试巨多的病毒样本1.调用 QueryPerformanceCounter反调试,这个API调用了封装ZwQueryPerformanceCounter系统调用的ntdll!NtQueryPerformanceCounter004060FA |. 3345 FC xor eax,[local.1]004060FD |. 8945 FC ...
2018-03-21 19:38:10
3051
原创 病毒逆向分析
收到一个病毒样本,被告知高危,需要进行逆向分析。分析完成之后写篇你想分析报告,第一次写病毒逆向报告,还不太会排版,见谅。 首先,先拿到病毒传到世界杀毒网上先看看检出率,不出意料,检出率还挺高(60 / 66),毕竟不算是特别新的病毒了, 但是在高检出率的同时,virustotal和腾讯的哈勃分析系统都没能检测到什么关键的病毒行为(腾讯只检出了打开事件,virustotal只检出Isdebug...
2018-03-18 16:32:55
4020
1
原创 Tensorflow实现微博的评论情感分类模型
学习研究项目:基于微博评论的数据挖掘与情感分析Github地址:情感分类模型源码项目简介学习卷积神经网络,循环神经网络在实际环境下的应用,提升实践能力,了解深度学习在自然语言处理方面的进展cnn_for_text_classify具备较强的自动关键词提取能力,在酒店评论测试集上达到95%的准确率 采用l2正则和dropout来控制过拟合现象 4种卷积核使其能提取局部高效的短...
2018-02-27 22:59:50
2045
2
原创 自然语言处理简洁自用代码合集
记录文字处理的各种简介的代码表示1.快速去除中文标点(read的时候要以utf8格式)def clean_str(string): string = re.sub("[^\u4e00-\u9fff]", " ", string) string = re.sub(r"\s{2,}", " ", string)#合并多个空格为一个 return string.str...
2018-02-11 16:31:43
2862
原创 中文词向量
模仿英文词向量,样本是我随便在网上下的小说,经过测试中文的速度比英文慢很多。。。主要时间消耗在data,dictionary的生成那里,所以把程序分成两个部分,一个是完成data,dictionary的生成然后保存为文件,另一个直接读取然后训练。tensorflow系列代码仓库:https://github.com/joliph/字典生成:import jiebaimport r
2018-02-07 21:54:21
2517
原创 Word2Vec原理解析
终于彻底搞懂word2vec是什么了………….其实很简单,理解了之后再看之前写的稀里糊涂的代码有种豁然开朗的感觉。。先转载一篇给我Word2Vec解惑的文章:http://blog.csdn.net/mylove0414/article/details/61616617 word2vec也叫word embeddings,中文名“词向量”,作用就是将自然语言中的字词转为计算机可以理解的
2018-02-05 00:14:01
1663
原创 词向量 Word2Vec 修改版
词---------------->向量将之前稀疏表示的词转为向量表示,使用1层隐藏层。这个比图像识别抽象太多了,看了好久,理论就不介绍了,太多。训练了100万次之后,skip-gram模式的128维向量拍扁,效果还是不错的,相关性高的单词基本都聚在一起了。本篇代码:https://github.com/joliph/tensorflow/blob/master/Word2Vec.py
2018-02-03 18:21:20
501
原创 Inception V3 迁移学习 训练 Fate stay night 人物识别
1.本来想训练LOL人物识别的,但是各种英雄皮肤一换人都认不出来,所以就选用 Fate 动漫人物的识别 2.图片收集工具:fatkun 说实话有这个工具方便多了,但是收集的还是很累,好多无关图片还要手动去除,害怕影响训练 3. 思考这个迁移学习方式的时候有点疑惑,Google设计这个神经网络结构的时候为了降低计算量和参数量,在最后也并未使用全连接层,但是几乎所有的Inception V3
2018-01-31 17:33:57
612
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人