自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windbg -I之后如何恢复原有的

直接运行了一下windbg -I,抓取了注册表行为,然后这里记录一下,方便翻阅。抓取到的windbg的注册表。

2023-09-22 17:12:05 174

原创 protobuff grpc addmeta崩溃问题

之前一同事在用protobuff 搞grpc通信时,发现addmeta之后调用grpc会崩溃,然而我之前添加多个都没有出现这种情况。后面该同事对比我之前正常的addmeta发现,当addmeta的key中存在大写的字母时,就会导致崩溃,全改成小写就正常了。

2023-08-14 10:56:35 144

原创 VS 查找项目中代码中所有中文[尽量排除注释]

【代码】VS 查找项目中代码中所有中文[尽量排除注释]

2023-05-17 16:10:53 994

原创 std::vector erase的正确处理方式

std::vector 执行erase的处理

2023-05-17 11:41:39 281

原创 duilib edit设置选中后失去焦点的背景色和文字

至于edit第一次选中时的背景色和文字颜色,目前没想到什么方法,duilib底层是直接调Edit_SetSel去实现的了。

2023-03-14 20:32:09 205

原创 markdown转word (vscode插件+wps法)

markdown 通过转html的方式转成doc/word

2022-09-02 14:21:45 3941

原创 vs link 1101 xxx.dll版本不正确的一种情况

用processmon抓取改dll的访问行为,发现在createfile的时候文件权限不够,说明文件被占用了,这个时候只要摘除占用的句柄就好了。不会摘句柄重启一下试试就行。

2022-05-10 12:08:18 157

原创 VS中文乱码解决方案(不改高级保存选项)QT+msvc也可参考

问题描述 # 要看结论直接拖到最后吧 1.环境 vs2019 win10电脑 2.描述 在VS上使用c++给win10的注册表写入带中文的字符串时,意外发现中文乱码。 代码页是utf-8无bom版,然后百度说注册表是识别ascii码编码的,然后代码页采用utf-8, 所以会乱码。 我尝试用代码把中文从unicode转成muti多字节,在调试时发现为转之前调试器里的内容就是乱码的。 转换后还是乱码的,写到注册表也是乱码的。解决过程 1.一开始我以为是代码页不是带bom的

2022-05-05 21:22:42 1588 2

原创 学习C++ primer 随缘记录,不定期更新

1.const 遇到typedef// 第一种typedef char *pstring;const pstring cstr = 0; // 指向char的const指针// 第二种const char * cstr = 0;// 指向char 常量(const)的指针// 总结:const pstring cstr != const char * cstr; // 通过typedef之后, pstring 被定义成一个单独的类型, // 故 1 式可以理解为: char const

2021-12-29 16:26:37 339

原创 关于duilib在布局(比如VerticalLayout)中使用滑动条时的某个坑

当在UI中采用VerticalLayout布局,放多个控件时,让滑动条滑动到底部,某些控件可能不会显示出来。原因是给VerticalLayout布局设置了height属性,去掉该属性就好了。

2021-11-27 16:23:55 300

原创 关于自定义QSyntaxHighlighter之后,自定义高亮没有生效的问题

注意看自定义类的构造方法,传入的parent指针应该我QtextDocument而不是Qobject,我在利用Qtcreater创建这个类时,qtcreater默认给的构造函数用的Qobject,导致自定义一直没有生效。

2021-11-23 14:44:52 287 1

原创 QT开发遇到的坑,有时间随缘更新

1 QGROUPBOX获取子控件并判断是否选中//通过gpbox->chidren()获取子控件的列表,然后通过遍历该列表,依次获取子控件// 伪代码,假如我gpbox里面都是radiobutton,然后有一个hboxauto gplst = gpbox->children();for(int i = 1; i< gplst.count();i++)// 注意i从1开始,后面讲原因{ auto item = qobject_cast<QRadioButton*>(g

2021-10-18 11:57:29 249

原创 打开QT项目 (qt 5.5)

qt用creater创建的项目,没有.pro文件,要打开项目,只需要打开CmakeListFile.txt即可

2021-09-14 10:41:59 1281

原创 centos 下安装python3 (直接yum python3安装不了)

转载的参考文档:https://www.cnblogs.com/yunlongaimeng/p/11119531.html复制粘贴作为记录,防止以后找不到,一共三种方法,我使用第二种在centos 6 上面成功的装好了python3,但使用指令是需要用python3 而不是python方法1.Python源代码编译安装# 安装必要工具 yum-utils ,它的功能是管理repository及扩展包的工具 (主要是针对repository)sudo yum install yum-utils#

2021-05-12 20:57:50 385

原创 c仿照pwn题实现arm64下的rop

代码基于一个ctf竞赛的rop用例写成,省去了用pwn进行攻击的过程,减少了工具的使用,方便以后添加到自动化测试用例。废话不多说,先贴代码:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/mman.h>#include <string.h> char * rop_chain ="\x61\x61\x61\x61\x61\x61\x61\

2021-04-25 15:13:45 464

原创 c指针:指针,指向指针的指针,指针数组,数组指针

C的指针关于指针一直没搞清楚,最近花了一些时间整理测试。关于指针p,直接读取p时,代表读取p所指向的地址,读取p指向的值时,用 *p。比如p为char *,指向数组 char a[] = “test”; 访问 字符 ‘t’ ‘e’ ‘s’ ‘t’ 就采用 *p。如果是直接读取整个字符串 “test”,直接访问 p就可以了,相当于读取字符串所在内存的首地址。c的指针之:p++ 和 *p++假设有指针p指向一个数组,则*p++和 p++是等效的,都是移动指针指向数组的下一个指针长度的值地址,只是此时

2021-04-23 20:59:21 169

原创 init_modue和finit_module

init_module 和 finit_module 使用方法glibc好像只实现了init_module的接口,没有实现finit_module的接口,故这里用syscall函数+对应的syscall id来模拟这两个函数/* 函数原型 int init_module(void *module_image, unsigned long len,const char *param_values);int finit_module(int fd, const char *param_values,i

2021-04-08 16:01:25 1146 1

原创 shellcode tmp of ioctl

.global _start.section .text_start: /* push b'/dev/zero\x00' */ /* Set x14 = 8243129037239968815 = 0x72657a2f7665642f */ mov x14, #25647 movk x14, #30309, lsl #16 movk x14, #31279, lsl #0x20 movk x14, #29285, lsl #0x30 mov

2021-03-03 20:55:30 129 2

原创 arm汇编笔记(不定期更新)

arm汇编1.x30 = LR寄存器 = 存放函数返回地址的寄存器2.x29 = FP寄存器 = x86的bp3.x31 = SP 寄存器; 在函数的调用过程中,往往x29和x31是指向同一个地址的stp x30,x29,[sp,#-48]! ;存储bp和返回地址到sp-48的位置,然后sp-48。先压栈返回地址,再压栈bpmov x29,sp ;将bp指向spldp x29,x30,[sp],#48 ;先将sp+48,然后从sp处将bp和返回地址取出,即从old sp中取出,old sp =

2021-03-01 20:47:22 266

原创 解压vmlinux+linux如何进入内核+部分内联汇编+std缓冲区和fflush

vmlinuz解压为vmlinux并还原符号测试用的是ubuntu 16.04的vmlinuz1.将vmlinuz解压成vmlinuxdd if=/boot/vmlinuz-4.10.0-28-generic skip=`grep -a -b -o -m 1 -e $'\x1f\x8b\x08' /boot/vmlinuz-4.10.0-28-generic | cut -d: -f 1` bs=1 | zcat > /tmp/vmlinux# dd 读取vmlinuz的内容# skip跳到

2021-03-01 20:45:18 412

原创 记一次c编程中遇到的两个问题:stack smashing detected + scanf输入之后无法删除

1.通过scanf获取当前用户的输入,然后,在某些时候,用户输入错误,想要删除错误的重新输入,结果出现无法删除,反而打印一些奇奇怪怪的字符而有的能够正常删除原因:所用的shell不同导致的,如果遇到上述情况,可以ctl+删除键实现删除2.检查程序的逻辑,明明没有问题,却在程序返回时报错: stack smashing detected原因:检查一下存放文件名数组的路径是否长度已经给足,我这里出现错误是因为path_len给的20,而实际输入的长度超过了20。。。。。汗...

2021-02-07 15:07:45 300

原创 virtual box多台虚拟机用一个局域网 and 虚拟机复制后如何启动 and linux的虚拟机复制后的缺少网卡eth0

写个备忘,oracle 如何让多台虚拟机在一个域1.设置全局,nat2.每台虚拟机添加到同一个nat3.全局端口转发virtualbox虚拟机复制后如何启动1.新建2.找到复制的虚拟机硬盘所在目录3.已有硬件,选中vdilinux机器复制后mac地址不匹配如何解决(多见于ifconfig找不到eth0)1.直接rm -rf /etc/edv/rules.d/70-persistent-net.rules2.然后,重启3.应该就好了...

2021-01-25 17:59:52 96

原创 关于outlook 直接用域账户自动加载邮箱失败的一次记录

使用outlook登录公司邮箱,加到域之后,默认会自动登录。今天遇到问题,新装了一个outlook,能通过imap登录到邮箱,但是imap登录的邮箱缺少了好多邮件,比如gitlab提交代码的邮件什么的,且域内联系人也没有了。后发现用exchange方式登录是不会有上述问题的。采用exchange登录,一直失败,排查各种原因,卸载重装,都没有用,后来,无意中发现自己把系统的全局代理打开了。。。。。。代理误我,代理误我啊,噗。浪费我一个上午加半个下午...

2021-01-25 17:52:43 530 2

原创 linux的堆管理及攻击(ptmalloc)

堆基础堆简介不同的平台有不同的堆内存管理机制,比如:管理机制对应的相关的平台dlmallocGeneral purpose allocatorptmalloc2glibcjemallocFreeBSD and FirefoxtcmallocGooglelibumemSolaris本来linux默认的是dlmalloc,但是由于其不支持多线程管理,后来被支持多线程的ptmalloc2代替了。接下来的内容都是基于ptmalloc机制进行的堆管理和

2021-01-25 10:31:43 464 1

原创 LSM HOOK 学习及踩坑(recipe for target ‘__modpost‘ failed)

LSM HOOK 学习及踩坑本文中的内容基于内核版本:4.4.232注意,据说低版本(2.x)的LSM只能有一个hook,本文不适用于此类版本LSM HOOK和其他hook的不同1.正常的hook一般流程是,(1)保存原始的函数指针 (2)用hook函数替换原始函数 (3)在hook函数执行后将指针指向原函数指针 (4) 执行原函数2.LSM HOOK采用的方式不一样,它维护了一个hook函数的链表,每次有新的hook函数添加时,就在链表的尾部插入该函数,并不影响原链表的执行,也没有修改原函数的

2020-08-20 20:18:53 4671 5

原创 linux驱动与设备实例(字符设备(互斥读写),misc设备和platform_device)

这两天学习了一下linux设备相关的知识,写个博客整理一下思路到处找实例,东拼西凑的整理直接贴源代码// dev.c// 普通字符设备#include <linux/module.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/types.h>#include <linux/errno.h>#include <linux/cdev.h>#i

2020-08-06 16:30:52 533

原创 linux clone() 函数 实例

百度clone实例,全特么是同一个文章的内容,都是讲的clone这个函数的用法,实际的例子一个都没找到,只好翻出以前不知道哪里修修补补的一个例子,复制到博客,留着以后忘了再来复习/**clone进程的函数体*/int clone_print(int argv){printf(“clone fun argv is %d clone func printf pid : %d\n”,argv,getpid());exit(0);}/**利用clone创建新的进程并执行*/int p

2020-07-11 15:08:15 651

原创 error: RPC failed; result=22, HTTP code = 404 fatal: The remote end hung up unexpectedly centos

centos 7 在使用git clone代码的时候,会出现***error: RPC failed; result=22, HTTP code = 404fatal: The remote end hung up unexpectedly***这种情况,网上找了好多的文章,都没有效果,什么修改设置,更新git版本都不行(其实是按照某些教程更新git版本以后版本并没有变。。。)。后来才知道,git clone -b xxx url***命令,在url后面添上.git就能够成功。。。。。。,即***git

2020-07-10 09:35:40 2854 4

原创 关于系统调用如何传递参数问题,即系统调用约定(syscall,int 80h,svc)

1.syscallsyscall是x64的系统调用。其调用号通过rax进行传递。查看具体的调用号,linux环境下在unistd.h中定义。如果是64位,则可以查看/usr/include/asm/unistd_64.h,如果是32位,则查看/usr/include/unistd_32.h。参数传递:处于用户态时,参数传递顺序为:rdi,rsi,rdx,rcx,r8,r9,处于内核态时,参数传递顺序:rdi,rsi,rdx,r10,r8,r92.int 80hint 80h 是32位x86的.

2020-05-18 20:15:27 4846 3

原创 关于如何给指定程序添加到右键(右键文件+右键空白)

1.右键空白处出现指定程序win+r,然后输入regedit,进入注册表编辑器将注册表编辑器下的HKEY_CLASSES_ROOT\Directory\Background\shell选中右键新建项项的名字随便起,推荐使用你要添加到右键的程序的名字选中刚新建的项——新建——项——名字用command再选中刚建的command——双击右边出现的ab(默认)——在弹出的对话框中输入你要...

2019-11-09 17:33:18 448

原创 菜鸡的偷学MoleBox壳脱壳

上午搞到一个MoleBox壳的小程序,下面就来介绍一下这种壳应该怎么脱将程序用od加载,进去的界面是这样的,有没有很熟悉?pushad,对的,先来个esp大法已经看到pushad了,说明壳代码已经执行过一次了,那么如果没有多层的壳,下一个call很有可能就是oep,这里,很幸运,call eax进去的就是oep,f7跟进,尝试在此处脱壳(记住oep的值00046C6D,后续有用)用ia...

2019-10-17 21:35:30 622

原创 脱壳练习05(NSpack3.x)

1.脱壳老规矩,第一步,查壳,可以看到该壳是NsPack(3.x)的壳。(这里给个忠告,脱壳前一定要清楚是什么壳,今天对这个脱壳的时候就闹了个笑话,最开始只知道有壳,也没仔细去看什么壳,结果修复导入表的时候,按照常规方法脱,程序打开失败了,其实前面也写过一个nspack的壳脱壳,当时要是注意到这是nspack的壳,可能会少走一部分弯路)2.第二步,用od打开程序,可以发现没有什么明显的push...

2019-08-30 19:51:02 687 2

原创 脱壳练习之未知壳(04)

1.第一步,查壳,无法识别出编译语言和linker是什么2.将文件用od打开,可以看到pushad和pushfd,f8两步之后对esp下硬件断点。3.f9执行到刚下的断点,f8继续,会看到popad,继续f8,到下一个jmp,f8进入jmp,发现下一条指令是jmp eax,f8继续跟,这时,出现的界面是否觉得很熟悉,没错,这里就是oep,记住这个oep的地址:47148B。4.看到...

2019-08-29 17:53:16 499

原创 关于开机启动项的一些笔记,随缘持续更新

1.怎么在快速打开注册表:win + r 输入regedit(reg:注册表简写,edit:编辑的意思,这样理解就很方便记忆了)2.64位系统下,32位的程序启动项会被重定位到:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run3.常用自启动项(1)\Documents and Sett...

2019-08-28 19:41:42 168 2

原创 upx脱壳(手动)

1.upx脱壳几乎可以算是最简单的了,第一步还是查壳2.第二步当然是od打开,提示解析代码,是和否都可以,然后f8,打硬件断点。3.此时再f9执行到硬件断点,可以看到popad,壳代码到这基本上结束了,后面就是oep。在下面的一个大跳jmp处断点,然后取消硬件断点,f9到断点。4.然后f8过去,可以看到如下画面。此处作为oep,可以开始进行脱壳5.右键——使用od调试进程6.复...

2019-08-28 19:14:29 2635 1

原创 fsg脱壳(手动)

1.第一步,老规矩,查壳,可以很清楚的看到是fsg2.0的壳2.用od打开带壳程序,结果如下所示3.使用esp法,先f8两步,然后对esp下硬件断点,再f9运行到下图4.根据对fsg壳的经验,我们在断点往上翻,发现一个jmp dword ptr ds:[ebx+0xC],这里过去就应该是oep了,在此处f2打断点,再取消硬件断点。f9,执行到断点。5.f8跳转过去,一片灰色,ctr...

2019-08-28 17:38:34 711

原创 nspack脱壳(手动,esp法)

1.查壳,直接丢查壳工具就可以查看,进行重定位已分离(不知道的可以看我上一篇文章https://mp.csdn.net/mdeditor/100102533#)2.用od打开,可以发现pushfd和pushad,f8单步执行两下,在右边选中esp,下硬件断点3.f9执行到硬件断点,此时可以看到popfd和下面一个jmp,先f8一次4.再f8一次,可以看到代码被od误解析成数据,此时,c...

2019-08-28 15:30:36 709

原创 aspack(工具+手动)脱壳

脱壳前准备:工具:od,import reconstract,lordpe,peid材料:一个有aspack壳的文件步骤:1.将带壳文件放到peid,查看是什么壳2.确定文件壳以后,正式开始脱壳步骤。打开lordpe,将选项修改为打开pe,点击确定3.将文件拖到lordpe,点击(特征值后面)三个点的地方,将重定位已分离勾上,记得一定要保存(这一步能去除随机基址,将进程基址固定在40...

2019-08-27 16:59:38 5720 1

空空如也

空空如也

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

TA关注的人

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