李志宽 李志宽
3年前
夺取应用程序的 “制空权”:内存数据
技术背景在病毒查杀,应用安全对抗,静态逆向应用,动态逆向应用,最重要的对象就是,应用程序的内存数据。病毒查杀对抗:需要获取查杀对象的内存数据进行和病毒库的特征做比对。应用安全对抗:需要保护自身的内存数据不被转存。静态逆向应用:遇到应用程序加密保护,那这用IDA就歇菜了,这时获取解密后内存数据就非常重要。动态逆向应用:用ollydbg进行动态调试应用主要还是调
基于Spring Cache实现Caffeine、jimDB多级缓存实战
在早期参与涅槃氛围标签中台项目中,前台要求接口性能999要求50ms以下,通过设计Caffeine、ehcache堆外缓存、jimDB三级缓存,利用内存、堆外、jimDB缓存不同的特性提升接口性能,内存缓存采用Caffeine缓存,利用WTinyLFU算法获得更高的内存命中率;同时利用堆外缓存降低内存缓存大小,减少GC频率,同时也减少了网络IO带来的性能消耗;利用JimDB提升接口高可用、高并发;后期通过压测及性能调优999性能<20ms
Jacquelyn38 Jacquelyn38
4年前
JS变量的内存分配你了解多少?
美国导演昆汀·塔伦蒂诺说:世界上80%的故事都已经拍过了。所以我们要用新方法去拍老故事。JavaScript的所有变量(包括函数)在整个处理过程中都是存放在内存中,所以要对一个变量进行处理。首先得为变量分配内存。JavaScript内存分配和其他语言一样,是根据变量的数据类型来分配内存的,而JavaScript变量的数据类型由所赋的值的类型所决定的。Java
红橙Darren 红橙Darren
3年前
C进阶 - 内存四驱模型
一.内存四驱模型不知我们是否有读过《深入理解java虚拟机》这本书,强烈推荐读一下。在java中我们将运行时数据,分为五个区域分别是:程序计数器,java虚拟机栈,本地方法栈,java堆,方法区。在c/c中我们将运行时数据,分为四个区域分别是:栈区,堆区,数据区,代码区。我们详细来介绍下:1.栈区:由编译器自动分配释放,存放函数的
Wesley13 Wesley13
3年前
37个常见的智能合约安全问题【以太坊】
SWCRegistry是以太坊安全人员和开发人员的必备知识库。它是SmartContractSecurity提供的以太坊智能合约安全漏洞分类及测试用例集,其中包含了37种以太坊Solidity智能合约开发中常见的安全问题的描述及后果,例如重入、溢出等,同时也给出了CWE漏洞分类、解决方案和作为示例的合约程序代码。用自己熟悉的语言学习以太坊DA
Stella981 Stella981
3年前
Linux内存管理之mmap详解
一. mmap系统调用1.mmap系统调用mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。当使用mmap映射文件到进程后,就可以直接操作这段虚拟地址进行文件的读写等操作,不必再调用read,writ
Stella981 Stella981
3年前
Blind_pwn之格式化字符串
可能需要提前了解的知识●格式化字符串原理&利用● got&plt调用关系● 程序的一般启动过程原理格式化字符串盲打指的是只给出可交互的ip地址与端口,不给出对应的binary文件来让我们无法通过IDA分析,其实这个和BROP差不多,不过BROP利用的是栈溢出,而这里我们利用的是无限格式化字符串漏
Stella981 Stella981
3年前
Android 加载图片占用内存分析
本文首发于vivo互联网技术微信公众号链接:https://mp.weixin.qq.com/s/aRDzmMlkqB14Ty67GJs9vg(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%2FaRDzmMlkqB14Ty6
javalover123 javalover123
1年前
Java程序性能分析:内存
开发Java项目过程中,难免会碰到一些性能问题,这时候就需要一些工具,帮忙排查。本文主要介绍JDK自带的上古神器jstat、jmap,另简单介绍MAT、gceasy、HeapDump等
贾蔷 贾蔷
1个月前
力扣145题:二叉树的后序遍历, 解题思路与C++实现
题目介绍力扣第145题要求实现一个函数,该函数接收一个二叉树的根节点,并返回该树的后序遍历结果。后序遍历是一种遍历二叉树的算法,其顺序为:先遍历左子树,是右子树,是根节点。解题思路分析解题时,我们可以使用递归或迭代的方法。递归方法较为直观,但可能导致栈溢出