简介 分为inline hook 和 iat hook inline HOOK 修改api前5个字节 为 jmp 地址(偏移) 计算公式为(地址):我们函数地址 - 当前地址(api地址)-5 inline HOOK 代码 #include <iostream> #include<Windows.h ...
天给大家更新的是一篇关于多线程面试的文章,也是霸哥根据时下热门的面试内容给大家进行总结的, 本篇文章属于干货内容! 请各位读者朋友一定要坚持读到最后,完整阅读本文后相信你对多线程会有不一样感悟,下次面试和面试官也能杠一杠相关内容了。 ...
分类:
编程语言 时间:
2020-05-15 09:28:22
阅读次数:
63
今天遇上一个问题,IDEA连接阿里云上的Mongo出现问题。 一、角色分类 1.数据库用户角色:read、readWrite; 2.数据库管理角色:dbOwner、dbAdmin、userAdmin; 3.集群管理角色:clusterAdmin、clusterManager、clusterMonit ...
分类:
其他好文 时间:
2020-05-03 20:21:19
阅读次数:
89
1.现象说明(仅测试FileShare=ReadWrite时候的影响,FileAccess保持一致, 如果FileAccess不一致的情况,另论,此处不讨论): a. FileAccess=Read, FileShare=ReadWrite未释放之后再打开文件: FileStream file; f ...
分类:
系统相关 时间:
2020-04-29 18:02:27
阅读次数:
95
分析解决线程安全问题的锁在使用中的问题。 场景: 在?个类?有两个int类型的字段a和b,有?个add?法循环1万次对a和b进 ?++操作,有另?个compare?法,同样循环1万次判断a是否?于b,条件成?就打印a和b的值,并判断 a>b是否成?。 代码如下: volatile int a = 1 ...
分类:
编程语言 时间:
2020-04-25 23:56:44
阅读次数:
123
1 #include "Windows.h" 2 #include "tlhelp32.h" 3 #include "String.h" 4 #include "Shlwapi.h" 5 #include "iostream" 6 using namespace std; 7 8 HANDLE hP ...
分类:
编程语言 时间:
2020-04-23 21:12:04
阅读次数:
109
步骤: 加载函数所在的模块,获取要Hook的函数地址 根据要hook函数的原型创建自己的函数 计算偏移 = 自己创建的函数的地址 - 要Hook的函数地址 - 5,第一个字节为0xE9,构成无条件跳转指令 修改目标页属性,是其可读可写可执行 将前面构造的无条件跳转写入Hook函数地址处,大小为5字节 ...
分类:
其他好文 时间:
2020-04-22 14:50:24
阅读次数:
64
1.先以一段代码为例 ReadWriteLock rwLock = new ReentrantReadWriteLock(); // rwLock.readLock()是获取rwLock里的一个属性而非new // 这句代码的意思是给rwLock加读锁,而不应该理解为给rwLock.readLock ...
分类:
其他好文 时间:
2020-04-21 16:51:23
阅读次数:
66
独占锁:独占锁也叫排他锁,是指该锁一次只能被一个线程所持有。如果线程T对数据A加上排他锁后,则其他线程不能再对A加任何类型的锁。获得排它锁的线程即能读数据又能修改数据。 ReentrantLock 和 synchronized 都是独占锁 共享锁:共享锁是指该锁可被多个线程所持有。如果线程T对数据A ...
分类:
其他好文 时间:
2020-04-21 15:27:04
阅读次数:
87
一,Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁)。在Lock接口出现之前,Java程序是靠synchronized关键字实现锁功能的,而Java SE 5之后,并发包中新增了Lock ...
分类:
其他好文 时间:
2020-03-30 12:41:32
阅读次数:
83