当前位置:网站首页>[Android reverse] function interception (CPU cache mechanism | CPU cache mechanism causes function interception failure)
[Android reverse] function interception (CPU cache mechanism | CPU cache mechanism causes function interception failure)
2022-07-04 06:21:00 【Programmer community】
List of articles
- One 、CPU Cache mechanism
- Two 、CPU Cache mechanism Lead to Function interception failed
One 、CPU Cache mechanism
CPU In the architecture model , Instructions At the beginning , Store in memory , Such as : /proc/pid/maps Each of the .so Dynamic libraries have an address in memory , Instructions are stored in the dynamic library ;

CPU And The access rate between memories is relatively low , The low here is with CPU Access register comparison , CPU The speed at which registers are accessed > CPU Speed of accessing memory > CPU The speed at which the disk is accessed ;
In order to improve CPU visit Memory The speed of , stay CPU A piece is prepared inside Cache , Instructions in memory are not put directly into CPU , Instead, put it in the cache first , Then read from the cache to the register for instruction operation ;
If CPU The instruction to be accessed is just in the cache , Then you can execute at high speed Code instructions , At the same time of execution , The subsequent instructions are continuously loaded into the cache , So that's a guarantee CPU Efficient execution of instructions ;

Two 、CPU Cache mechanism Lead to Function interception failed
In the last blog 【Android reverse 】 Function interception principle ( By modifying the GOT Global offset table interception function | Function interception is realized by adding jump code to the actually called function ) Reliable function interception scheme in , Recommended " Add jump code to the actually called function to realize function interception " The scheme implements function interception ;
The above scheme needs to be implemented in The function actually called in , Write a jump instruction , The function of the write instruction is stored in memory , It can only be written in memory , CPU The cache of is entirely composed of CPU Internal hardware call , External code cannot access the cache ;
Here is a question , stay Insert jump code into the intercepted function , If the function has been loaded into CPU In the cache of , that Modify memory , Can't make CPU Execute the modified code instruction ;
CPU Medium The cache is Sort by command rate , The more frequently used functions , The higher the priority , The less likely it is to be removed ;
If the function to be intercepted , Call frequency is very high , Maybe the modified function will always reside in CPU In cache , Just The function has been unable to be intercepted ;
And that leads to this Function interception , unable 100% success ;
边栏推荐
- Cloud native - SSH article that must be read on the cloud (commonly used for remote login to ECS)
- How to determine whether an array contains an element
- Dimension and format of data
- SQL injection SQL lab 11~22
- Component、Container容器常用API详解:Frame、Panel、ScrollPane
- Learning multi-level structural information for small organ segmentation
- 2022.7.3-----leetcode. five hundred and fifty-six
- ORICO ORICO outdoor power experience, lightweight and portable, the most convenient office charging station
- ES6 模块化
- 每周小结(*63):关于正能量
猜你喜欢

测试岗的中年危机该如何选择?是坚守还是另寻出路?且看下文

Matlab remainder

剑指 Offer II 038. 每日温度

C realize Snake games

MySQL learning notes 3 - JDBC

AWT常用组件、FileDialog文件选择框
![[March 3, 2019] MAC starts redis](/img/ff/88638fcdc8d24dc268781c224e8195.jpg)
[March 3, 2019] MAC starts redis

JSON Web Token----JWT和传统session登录认证对比

Uninstall Google drive hard drive - you must exit the program to uninstall

My NVIDIA developer journey - optimizing graphics card performance
随机推荐
Matlab remainder
实用的小工具指令
17-18. Dependency scope and life cycle plug-ins
2022.7.2-----leetcode. eight hundred and seventy-one
win10清除快速访问-不留下痕迹
C realize Snake games
MySQL information_ Schema database
How to implement cross domain requests
对List进行排序工具类,可以对字符串排序
Luogu deep foundation part 1 Introduction to language Chapter 5 array and data batch storage
C實現貪吃蛇小遊戲
A little understanding of GSLB (global server load balance) technology
ABAP:OOALV实现增删改查功能
C语言中的函数(详解)
HMS v1.0 appointment. PHP editid parameter SQL injection vulnerability (cve-2022-25491)
STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储
746. Climb stairs with minimum cost
Leakage detection relay jy82-2p
Average two numbers
740. Delete and get points