首页
社区
课程
招聘
[求助]读取其他进程内存还有什么猥琐方法!
发表于: 2018-3-19 12:47 6484

[求助]读取其他进程内存还有什么猥琐方法!

2018-3-19 12:47
6484
目前在研究一个程序,双进程互相保护效验对方内存。
一般想到要效验对方内存肯定需要读取对方内存,先找个内存下个硬件读取断点,没断到!
我想肯定用了系统API  NtReadVirtualMemory,于是下断点, 还是没断到!
我想我是64位系统会不会调用未公开的API  NtWow64ReadVirtualMemory64 于是下断还是没断下!
难道莫非他自己实现了这2个API,因为我发现他重载了NTDLL.DLL。于是去 NtReadVirtualMemory的下层 syscall 下断
ntdll.ZwReadVirtualMemory - 4C 8B D1              - mov r10,rcx
ntdll.ZwReadVirtualMemory+3- B8 3C000000           - mov eax,0000003C { 60 }
ntdll.ZwReadVirtualMemory+8- 0F05                  - syscall  //call    FS[0XC0]
ntdll.ZwReadVirtualMemory+A- C3                    - ret 
ntdll.ZwReadVirtualMemory+B- 0F1F 44 00 00         - nop [rax+rax+00]
在 FS[0XC0] 的地址 下条件断点 eax==0x3c 还是没断下。难道他这里也自己重写了?
继续看下层。
wow64cpu._CpuSuspendLocalThread+8A8 - EA 1E274A75 3300      - jmp 0033:wow64cpu._CpuSimulate+16E
wow64cpu._CpuSuspendLocalThread+8AF - 00 00                 - add [rax],al
wow64cpu._CpuSuspendLocalThread+8B1 - CC                    - int 3 
wow64cpu._CpuSuspendLocalThread+8B2 - CC                    - int 3 
跳到下面了
wow64cpu._CpuSimulate+16E - 67 44 8B 04           - mov r8d,44
wow64cpu._CpuSimulate+172 - 24 45                 - and al,45 { 69 }
wow64cpu._CpuSimulate+174 - 89 85 BC000000        - mov [rbp+000000BC],eax//这里下条件断点还是没断到
wow64cpu._CpuSimulate+17A - 41 89 A5 C8000000     - mov [r13+000000C8],esp
wow64cpu._CpuSimulate+181 - 49 8B A4 24 80140000  - mov rsp,[r12+00001480]
wow64cpu._CpuSimulate+189 - 49 83 A4 24 80140000 00 - and qword ptr [r12+00001480],00 { 0 }
wow64cpu._CpuSimulate+192 - 44 8B DA              - mov r11d,edx
wow64cpu._CpuSiwow64cpu._TurboDispatchJumpAddressStart - 41 FF 24 CF           - jmp qword ptr [r15+rcx*8]
wow64cpu._TurboDispatchJumpAddressEnd   - 41 89 B5 A4000000     - mov [r13+000000A4],esi
754A2750                                - 41 89 BD A0000000     - mov [r13+000000A0],edi
754A2757                                - 41 89 9D A8000000     - mov [r13+000000A8],ebx
754A275E                                - 41 89 AD B8000000     - mov [r13+000000B8],ebp
754A2765                                - 9C                    - pushfq 
754A2766                                - 5B                    - pop rbx
754A2767                                - 41 89 9D C4000000     - mov [r13+000000C4],ebx
754A276E                                - 8B C8                 - mov ecx,eax
754A2770                                - FF 15 0AE9FFFF        - call qword ptr [754A1080] { ->wow64._Wow64SystemServiceEx }
754A2776                                - 41 89 85 B4000000     - mov [r13+000000B4],eax
754A277D                                - E9 8FFEFFFF           - jmp wow64cpu._CpuSimulate+61
754A2782                                - CC                    - int 3 
mulate+192 - 44 8B DA              - mov r11d,edx
进内核了。还是没断到。莫非他自己实现的读取内存函数不经过这里,不应该啊!
大神们指点下,为什么我断不到他调用API读取内存,或者还有什么非常规方法读取对方内存效验?
想了几天没想明白!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 97
活跃值: (86)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看加载驱动没啊...    0环读的话    你断3环API肯定断不到
2018-3-19 18:01
0
雪    币: 12848
活跃值: (9147)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
3
https://github.com/hzqst/Syscall-Monitor
内核级别监控,请。
2018-3-19 21:46
0
雪    币: 3750
活跃值: (1807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没加载驱动,用了楼上的工具知道了他是注入一个傀儡进程负责读取内存,难怪没断到,还有这样的骚套路!楼上的工具果然是神器!牛!
最后于 2018-3-20 10:12 被chow编辑 ,原因:
2018-3-20 10:11
0
雪    币: 47
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
兄弟是不是在上海泾河的阿波罗上班?
2019-4-30 21:16
0
游客
登录 | 注册 方可回帖
返回
//