|
[求助]修改汇编指令实际操作
完全不理解你这么做的意义,为什么非要是在缺页时修改指令执行效果而不是在所有时候 而且缺页异常是由内核处理的,永远不进入Ring 3 最终目的是让有些地方访问的是 mov eax,3,有些 mov eax,0 如果你说的访问是读取,那么你可以通过设置页面不可读属性,然后从异常的Eip判断 如果你说的访问是执行,那么不可能.x86下call/jmp一处不可执行代码是不会产生异常的,所以你永远也无法知道是谁执行了这一块代码(尤其是jmp/jcc的情况下) |
|
[求助]修改汇编指令实际操作
我搞不懂内存换页跟这个有什么关系.你能解释一下你认为的内存换页是什么么 |
|
[求助]修改汇编指令实际操作
更底层你就真的只能用Hypervisor了,指令缓存不受你控制 硬件断点不能用你还可以用内存断点来实现:设置不可执行,异常处理里检查是不是指定地址:是就按上面的方法模拟,不是就恢复页面保护属性,单步,再次设置不可执行 不过页面保护好像不是特别稳定,我以前想利用页面保护做跨平台的API Hook的时候有一些奇怪的问题 |
|
[求助]修改汇编指令实际操作
我修改了我2L的答案,你再瞧瞧看? |
|
|
|
[求助]如何加载MachineType不正确的可执行文件
废话,要是光修改MachineType就能跑我还写这个干啥.而且你也不用估计了,别说十个,一个指令都跑不了 我需要先将程序加载起来,然后注入ARM代码做JIT.但我先要能加载起来 |
|
[求助]修改汇编指令实际操作
如果楼主真想实现这方面的功能,可以用虚拟化技术写一个Hypervisor,然后你就可以实现你主楼所希望的功能 回复5#的时候我想到了,用硬件断点在你想要的指令下断,然后在异常处理里手动模拟指令执行,最后EXCEPTION_CONTINUE_EXECUTION 最开始只是在想如何"修改"指令操作,忘了可以这么做了 //call a ExceptionInfo->ContextRecord->Esp -= sizeof(SIZE_T); *(SIZE_T *)(ExceptionInfo->ContextRecord->Esp) = ExceptionInfo->ContextRecord->Eip + 5; ExceptionInfo->ContextRecord->Eip = B; //mov eax,3 ExceptionInfo->ContextRecord->Eax = 0; ExceptionInfo->ContextRecord->Eip += 5; //B8 03 00 00 00 |
|
[讨论]Win7注册表好复杂啊。。。[有关右键菜单]
这个就是用很普通的Shell Extension实现的,我今天才写了一个 |
|
[求助]CPU执行程序的最小单位是什么?
我已经在#5列出了所有可以使用LOCK前缀的指令,除此以外的都不能使用这个前缀,也都不能保证是原子操作. 不使用LOCK的话只有如下行为是被保证为原子操作的: • Reading or writing a byte • Reading or writing a word aligned on a 16-bit boundary • Reading or writing a doubleword aligned on a 32-bit boundary • Reading or writing a quadword aligned on a 64-bit boundary • 16-bit accesses to uncached memory locations that fit within a 32-bit data bus • Unaligned 16-, 32-, and 64-bit accesses to cached memory that fit within a cache line 抱歉,第二个问题我在看的时候想的是时钟周期和多级流水线去了.但我们所说的是执行程序的最小单位,就程序而言它们只有指令这个概念而没有指令周期这个概念 |
|
[求助]CPU执行程序的最小单位是什么?
谁跟你说所有的机器指令都是原子操作的? 在x86体系下只有一部分指令是原子操作的:比如向对齐地址mov[Vol3 8.1.1 Guaranteed Atomic Operations] 还有一部分需要用LOCK前缀锁总线才行:ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCH8B, CMPXCHG16B, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD, and XCHG[Vol2 3.2.LOCK] 剩下的指令就都不是原子操作了,难道rep movsb也是原子操作? CPU执行程序的最小单位就是单条指令.CPU可以在内部分多级流水线执行,但是这不能说是执行程序的最小单位,而是执行指令的最小单位.这就好比我们吃饭的最小单位是一口而不是一个蛋白质分子 |
|
[求助]快速就业应该学习哪门语言?
楼主学COBOL吧,五角大楼正缺人维护他们几百万行的COBOL代码呢 |
|
[求助]C++命名空间中怎么使用空间外声明的结构?
看雪难道不应该删掉这些问题么 |
|
[原创]自己动手封装的Windows7系统光盘镜像
至少在看雪大家都应该是用原版自己安装了吧 |
|
[分享]DNF双开工具最新版有图有真相
文件有点过大了,无码还加壳,感觉有问题 |
|
[求助]帮忙指点下.data段后面这块数据是干嘛的
你可以去问一问Raymond Chen,他在他的博客里多次展现出了他的超能力判断客户的问题到底在哪 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值