当前位置:网站首页>[Android reverse] function interception (use cache_flush system function to refresh CPU cache | refresh CPU cache disadvantages | recommended time for function interception)
[Android reverse] function interception (use cache_flush system function to refresh CPU cache | refresh CPU cache disadvantages | recommended time for function interception)
2022-07-04 07:09:00 【Programmer community】
List of articles
- One 、 Use cache_flush System function refresh CPU Cache
- Two 、 Use cache_flush System function refresh CPU The disadvantages of cache
- 3、 ... and 、 Function intercept recommended timing
One 、 Use cache_flush System function refresh CPU Cache
Use " Add jump code to the actually called function to realize function interception " programme Function interception , Due to the existence CPU Cache mechanism , No guarantee 100% success ;
Here you need to refresh CPU The cache of , call cache_flush
System function , Will be CPU All data related to the process in the cache are cleared , Then reload the cache information from memory , At this point, you can put After modification Added jump function Intercepted function , Reload into memory , here CPU You can execute The modified Intercepted function ; Interception effective ;
Two 、 Use cache_flush System function refresh CPU The disadvantages of cache
Use cache_flush System function refresh CPU The disadvantages of cache :
① Performance loss : CPU Rebuild cache , Resulting in reduced execution efficiency , Could cause Caton , Flashback, etc ;
② Affect other processes : Multicore CPU If you refresh Cache , May cause other processes Cache Also refreshed , Affect the execution of other processes ;
③ Affect multithreaded code logic : Multiple threads compete CPU Executive authority , It's empty CPU In cache ,
Multithreaded execution logic Reference resources 【Java Concurrent programming 】 Thread Introduction ( Concurrency type | Thread state | CPU Data caching ) Blog , Java Threads Runtime , Every Java Threads are equipped with a The working memory , Then the working memory starts from Main memory Get data in , Main memory is shared by all working memory ;
- The working memory Namely Thread Local memory , Which is stored in the main memory Copies of variables , Before using variables in main memory , First copy the variable to the working memory ;
- When in a thread Modified the data in working memory , At the same time Synchronize the changes of variables to main memory ;
there The worker thread / Local thread amount to CPU Medium L1 / L2 cache , Main memory amount to CPU Medium L3 cache ;
If the cache is cleared , There must be problems with multithreading execution ;
3、 ... and 、 Function intercept recommended timing
Whereas Function interception need Empty CPU Cache There are the above disadvantages , Therefore, it is suggested that Function interception during program initialization , Do not do this while the program is running Function interception ;
If you have to intercept after the program starts , Can only risk Empty CPU Cache , However, it is recommended to intercept all functions at one time , Don't do it frequently Function interception + Empty CPU Cache operation , The more times , The more likely it is to go wrong ;
边栏推荐
- How does the recv of TCP socket receive messages of specified length?
- 【FreeRTOS】FreeRTOS学习笔记(7)— 手写FreeRTOS双向链表/源码分析
- 移动适配:vw/vh
- tornado之目录
- Computer connects raspberry pie remotely through putty
- CMS source code of multi wechat management system developed based on thinkphp6, with one click curd and other functions
- Solution of running crash caused by node error
- 响应式——媒体查询
- 2022 is probably the best year for the economy in the next 10 years. Did you graduate in 2022? What is the plan after graduation?
- Responsive mobile web test questions
猜你喜欢
【GF(q)+LDPC】基于二值图GF(q)域的规则LDPC编译码设计与matlab仿真
Bottom problem of figure
响应式移动Web测试题
Shopping malls, storerooms, flat display, user-defined maps can also be played like this!
Splicing plain text into JSON strings - easy language method
centos8安装mysql.7 无法开机启动
Vulhub vulnerability recurrence 77_ zabbix
Industrial computer anti-virus
Boosting the Performance of Video Compression Artifact Reduction with Reference Frame Proposals and
[thread pool]
随机推荐
MySQL 45 learning notes (XI) how to index string fields
在已經知道錶格列勾選一個顯示一列
tars源码分析之7
The most effective futures trend strategy: futures reverse merchandising
校园网络问题
移动适配:vw/vh
2022年,或许是未来10年经济最好的一年,2022年你毕业了吗?毕业后是怎么计划的?
js 常用时间处理函数
[GF (q) + LDPC] regular LDPC coding and decoding design and MATLAB simulation based on the GF (q) field of binary graph
the input device is not a TTY. If you are using mintty, try prefixing the command with ‘winpty‘
The final week, I split
Selenium driver ie common problem solving message: currently focused window has been closed
Selection (023) - what are the three stages of event propagation?
2022年,或許是未來10年經濟最好的一年,2022年你畢業了嗎?畢業後是怎麼計劃的?
Analysis of tars source code 1
MySQL 45 lecture learning notes (VI) global lock
jdbc连接es查询的时候,有遇到下面这种情况的大神嘛?
在已经知道表格列勾选一个显示一列
2022 is probably the best year for the economy in the next 10 years. Did you graduate in 2022? What is the plan after graduation?
Summary of MySQL common judgment functions!! Have you used it