<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[四位的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_44803739</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_44803739]]></copyright><item><title><![CDATA[Win10 底部应用图标显示不正常(空白)]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/125537579</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/125537579</guid><author>qq_44803739</author><pubDate>Thu, 30 Jun 2022 11:41:09 +0800</pubDate><description><![CDATA[Windows10，底部任务栏图标显示不正常，显示空白]]></description><category></category></item><item><title><![CDATA[python将Word中表格复制到Excel中]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/119490349</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/119490349</guid><author>qq_44803739</author><pubDate>Sat, 07 Aug 2021 18:07:47 +0800</pubDate><description><![CDATA[一个基础的代码演示(并未对合并的单元格做处理), 可以读取Word文档中的所有表格/标题, 并在Excel中创建相应的sheet 希望能帮助到你.
原先的想法是可以直接打开一次execl然后一次性写入, 网上搜了一圈没有啥好办法, 只能采用每次一个新表都重新打开文件的形式. 所以如果是重新生成相同文件名需要删除原有的文件(处理在save_sheet).
import re
import docx
import xlwt
from numpy import *

# 改写Excel
import xlrd
f]]></description><category></category></item><item><title><![CDATA[csgo 简单发光透视]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/115245870</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/115245870</guid><author>qq_44803739</author><pubDate>Fri, 26 Mar 2021 15:13:18 +0800</pubDate><description><![CDATA[带特征码搜索，官匹可用
依赖：pymem，win32api
https://github.com/saiveen1/Csgo-GlowHack
F1 显示队友，F2开关，END退出
import pymem.process
import win32con as keymap
import re
from pymem import Pymem
from win32api import GetAsyncKeyState

exitKey = keymap.VK_END
show_teammate_button ]]></description><category></category></item><item><title><![CDATA[滴水逆向三期15611 进程通信 项目练习]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/112400923</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/112400923</guid><author>qq_44803739</author><pubDate>Sun, 10 Jan 2021 19:02:34 +0800</pubDate><description><![CDATA[进程通信联系概要步骤进程通信为什么要进程通信命名管道dll 无模块注入为什么必须是dllshellcode 注入模块注入shellcode 部分Extract代码
概要
最终效果


创建进程通信



通信测试



IATHOOK 剪切板内容


inlineHook 创建进程



文章分如下几部分

步骤
进程通信
dll注入
问题总结
本篇文章不是一个实现过程, 而是一个关于这个项目的一个总结, 包含了比较多外链, 帮助更好的理解.

步骤

实现进程通信
无模块注入dll
hook

进程通信
]]></description><category></category></item><item><title><![CDATA[滴水逆向三期 内存注入/无模块注入]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/112250553</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/112250553</guid><author>qq_44803739</author><pubDate>Tue, 05 Jan 2021 19:32:04 +0800</pubDate><description><![CDATA[找文章看了一下, 讲的很好, 但是地址没了…尴尬, 03年的技术, 大致内容就是介绍了两种注入技术, 一个为常规的远程线程注入, 另一个就是内存注入. 只不过文章思路是只插入一段代码, 也就是编写shellcode. 而无模块注入则是将模块整体以内存写入的形式加载实现隐藏 .
杀软依然秒杀…但是我封装起来写后就检测不到, 特征码竟然消失了…
原理与问题
思路是将自己复制一份加载到目标进程中, 即注入进程和寄生程序是一个东西.不过想想也知道, 注入dll也是一个原理, 无非是拉伸之后再贴到目标进程, 最后依然]]></description><category></category></item><item><title><![CDATA[vs linker 链接器 Pe相关属性fixed base address/randomized/]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/112206728</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/112206728</guid><author>qq_44803739</author><pubDate>Mon, 04 Jan 2021 22:14:44 +0800</pubDate><description><![CDATA[文章主要针对在学习逆向使用新工具时, 某些功能带来的干扰.
具体情况就是一个软件没有重定位表怎么修改ImageBase呢…

Base Address
设置基地址, 这个很好理解, 所有的全局变量/函数地址都以这个为基准, 编译时确定.
Randomized Base Address
随机基地址, 也就是ASLR技术, 相信用比较新的系统学习的朋友对这个深有体会, 上篇文章里面也有对此的介绍.
Fixed
固定, 也就是固定基地址, 也是这篇短文重点介绍的…
首先要明确的一点是该选项和aslr是冲突的. 即]]></description><category></category></item><item><title><![CDATA[某脚本]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/103420589</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/103420589</guid><author>qq_44803739</author><pubDate>Wed, 30 Dec 2020 14:32:11 +0800</pubDate><description><![CDATA[@TOC
var ti = $("body");
var video = $(".catalogue_ul1 li[id*=video-] .catalogue_title");
video.css("color", "blue");
setTimeout(function () {
	$('.speedTab15').click();
	$('.volumeIcon').click();
}, ...]]></description><category></category></item><item><title><![CDATA[滴水逆向三期 win10 ASLR UnmapViewOfSection傀儡进程 加密壳项目]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/111712862</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/111712862</guid><author>qq_44803739</author><pubDate>Sun, 27 Dec 2020 15:43:04 +0800</pubDate><description><![CDATA[特意加了一个win10标题, 碰到0xc0000005的朋友就不要再浪费时间了, 我在这个问题上花了整整一天
概要
利用挂起创建进程, 然后卸载源程序(以下统称src)镜像(ps: 非必须选项),


]]></description><category></category></item><item><title><![CDATA[微信手机端调试抓包总结与问卷星手机端的自动化]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/107188964</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/107188964</guid><author>qq_44803739</author><pubDate>Tue, 07 Jul 2020 20:01:46 +0800</pubDate><description><![CDATA[本文分为两个部分, 一个是如何对微信内网页调试抓包的总结另一个是wjx的问卷填写.
总结部分
诸如"ks.wjx.top"的为考试卷, 估计也一般设置为要求微信登录.
一共做过两次, 有强制微信手机登录, 也有可以用电脑微信做的.
我自己发的测试问卷
首先是去遮罩, 看到题, 调试可以用浏览器改useragent来模拟微信浏览器, 也可以直接下微信开发者工具调试.

控制台直接show_zhezhao_utlis(0,1)即可, 当然还是处于需要登录的状态
实现
试卷只是第二课堂加分用, 前几名加的比较多.]]></description><category></category></item><item><title><![CDATA[win32 c++ 32/64位数字转字符串]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/106884751</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/106884751</guid><author>qq_44803739</author><pubDate>Sun, 21 Jun 2020 13:49:06 +0800</pubDate><description><![CDATA[初接触windows编程, 需要把数字转为16进制表示的字符串显示出来, 如0x123456789abc转为"123456789abc".
想直接搜来用发现都是32位.
32位数有库函数可以直接转换, c提供了itoa ltoa utoa等详见数字转换为字符串.
不过需要注意在高版本上要改为_utoa_s 参数形式不变
也可以使用wsprintf.
利用wsprintf就可以把64位数分为两部分,分别转换. 很简单的代码不要在这种小事上费时
void HexToStr(int64_t i64Src, TCH]]></description><category></category></item><item><title><![CDATA[滴水逆向三期 PE解析 资源表]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/106789634</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/106789634</guid><author>qq_44803739</author><pubDate>Tue, 16 Jun 2020 22:19:02 +0800</pubDate><description><![CDATA[概要
资源表采取目录的形式, 就和我们常用的访问文件夹性质是一样的, 每一级都是同一结构, 每一级之前又有一个结构来判断当前级是否为目录.
文章采用两种方式来理解
利用文件目录理解
根据结构解析
代码实现
分析
根据结构解析
文件结构:

注意事项:
结构中涉及的偏移计算方式均为 第一个目录(DataDirectory[2]所指向的结构)的偏移加上其值
譬如本例中所有偏移均已pResourceDirectory的地址作为基准. 故定义变量dwPRD指代其值
一 目录表定位到资源表位置

可以看到红色标红两项]]></description><category></category></item><item><title><![CDATA[滴水逆向三期 使用DialogBox创建文件后Messagebox无响应 没法被关闭]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/106733009</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/106733009</guid><author>qq_44803739</author><pubDate>Sat, 13 Jun 2020 15:48:29 +0800</pubDate><description><![CDATA[刚开始是发现发现主窗口点关闭无法响应, 然后学着demo加了
return DefWindowProc
接着奇怪的事情发生了, 按钮产生的Messagebox无响应,没法关 移动, 去掉DefWindowProc正常, 查阅资料后发现在文档中已经规定了当使用资源文件创建窗口时应该注意的事项如下:
返回值中规定了如果是自己处理的函数需要return TRUE
需要交给系统的则return FALSE
下面的注意事项禁止使用DefWindowProc来处理不想处理的消息, 如果不想处理返回FALSE即可.
一开]]></description><category></category></item><item><title><![CDATA[滴水逆向三期 PE基础 移动导入表与导入表注入]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/106363373</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/106363373</guid><author>qq_44803739</author><pubDate>Wed, 27 May 2020 10:59:43 +0800</pubDate><description><![CDATA[目录分析大致流程具体实现步骤移动导入表1 移动整体结构 完成导入表注入需要的操作2 改变name3 改变OriginalFirstThunk4 改变INT(可以选择把IAT置0或者不管 FirstThunk不改变即可)整体代码导入表注入1改变OFT FT NAME2 设置INT很多问题
分析
大致流程
一 遍历所有导入表, 如果遇到0结束遍历, 如果要加进去一个, 那么原有导入表目录最后需要至少有14h*2的空闲空间.
二 如果没有那么要先进行移动导入表的操作. 在移动导入表操作中会碰到空闲空间不够, 那么]]></description><category></category></item><item><title><![CDATA[滴水逆向三期 PE基础 绑定导入表]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/106196774</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/106196774</guid><author>qq_44803739</author><pubDate>Mon, 18 May 2020 17:30:28 +0800</pubDate><description><![CDATA[分析

系统软件会有绑定导入表 也就是IAT已经被设定为函数地址, 但是WIN10中即便是记事本也没了, 只能用xp的notepad代替.
这个表的目的是减少程序启动时间, 在导入表中时间戳为-1时代表有绑定导入表.
OffsetModule这个值需要加上第一个IMAGE_BOUND_IMPORT_DESCRIPTOR的地址, 而不是当前dll的地址
NumOfModuleForwarderRefs表示当前dll所需要的其它dll, 在当前绑定导入表之后紧跟的结构就是
typedef struct _IMA]]></description><category></category></item><item><title><![CDATA[滴水逆向三期 PE基础 导入表解析]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/106179104</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/106179104</guid><author>qq_44803739</author><pubDate>Sun, 17 May 2020 21:38:19 +0800</pubDate><description><![CDATA[假的分析
在学习这节的时候第一遍并没有弄懂到底怎么回事, 等遍历完了再回头去看才懂, 推荐可以先把表打印出来再体会表结构.
真的分析
软件依然是某云音乐的主程序.


按照顺序依次为
1 遍历 _IMAGE_IMPORT_DESCRIPTOR
2 遍历OriginalFirstThunk中的ThunkValue偏移
3 遍历打印ThunkValue(本身还是偏移)
4 遍历IMAGE_THUNK_DATA32(ThunkValue所指向的值)
1 打印重要基础数据
while (pImportDescrip]]></description><category></category></item><item><title><![CDATA[滴水逆向三期 PE基础 移动重定位表与修改IMAGEBASE]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/106159224</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/106159224</guid><author>qq_44803739</author><pubDate>Sat, 16 May 2020 15:30:25 +0800</pubDate><description><![CDATA[分析
一 移动重定位
直接把整张表复制后修改目录表的RVA即可
二 修改ImageBase
①首先当然是修改ImageBase
②遍历重定位表中的数据加上新旧ImageBase的差值, 就是在打印的基础上加上修改数据
重定位表的结构

SECTION为所属区段, RVA为大表, items为有多少数据(SizeofBlock-8)/2  因为小表为word
RVA为要修改数据的地址(非真实地址) offset为文件偏移 type为数据属性
FarAddress为真正的地址也是修改imagebase后应该修改]]></description><category></category></item><item><title><![CDATA[滴水逆向三期 PE基础 移动导出表]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/106120519</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/106120519</guid><author>qq_44803739</author><pubDate>Sat, 16 May 2020 13:15:29 +0800</pubDate><description><![CDATA[分析
要移动导出表, 需要改变的地方有:
1 DataDirectory[5]-&gt;VirtualAddress
2 ExportDirector中的三个地址
代码
按照课程内容的顺序依次进行
步骤如下:

新增节省略
初始化
Header header;
SList slist;
DWORD fileSize = 0;
DWORD foaOfNewSection = 0;
DWORD foaExportDirectory = 0;
PIMAGE_DATA_DIRECTORY pDataDirector]]></description><category></category></item><item><title><![CDATA[逆向学习 指针数组与数组指针]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/105603513</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/105603513</guid><author>qq_44803739</author><pubDate>Sat, 18 Apr 2020 20:05:57 +0800</pubDate><description><![CDATA[概要
指针数组
Array of pointers
和char a[10],  short b[10],   int c[10]一样, 指针数组就是数组, 不过是里面存放的类型是指针
数组指针
A pointer to an array
和char* a,   short* b, int* c一样, 一个指向数组的指针
int(*arr)[10]代表arr指向一个有10个存储空间的数组的地址
分析...]]></description><category></category></item><item><title><![CDATA[逆向学习 小数在内存中存储方式]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/105329507</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/105329507</guid><author>qq_44803739</author><pubDate>Sun, 05 Apr 2020 18:26:29 +0800</pubDate><description><![CDATA[一般步骤

将其绝对值转换为二进制
小数点左移或友移n位, 直到移动到第一个有效数字的右边
符号位负则1 正则0
指数部分根据第二步移动方向 左为1 右或不移动为0填入指数部分第1位
n-1的二进制填入指数部分后7位, 8位时取后七位
小数点右边开始依次填入尾数部分 不足补0
转换十六进制

float 12.5为例
一 12.5 = 1100.1
二 1100.1左移动三位1.1001
三 0...]]></description><category></category></item><item><title><![CDATA[逆向学习 堆栈图]]></title><link>https://blog.youkuaiyun.com/qq_44803739/article/details/105302964</link><guid>https://blog.youkuaiyun.com/qq_44803739/article/details/105302964</guid><author>qq_44803739</author><pubDate>Sat, 04 Apr 2020 01:44:48 +0800</pubDate><description><![CDATA[介绍
记录一下自己学习逆向的过程，也可以强制自己能够理解而不是看一遍一代而过一知半解，算是从零开始。
逆向代码
跟着视频学的，这里的例子并没有提供正向代码不过很简单不影响，重点是为了理解堆栈。
0040118E    |.  6A 09                    PUSH 9
00401190    |.  6A 0C                    PUSH 0C
004011...]]></description><category></category></item></channel></rss>