首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
HOOK 需要学习那些知识
2024-11-04
学习Hook的必备知识
1.汇编 2.API 3.内存 4.进程 5.窗口 必须熟悉的汇编指令: PUSH 入栈 MOV 赋值 JMP(JNZ JE) 跳转 CALL 调用函数 RET 返回 Cmp 比较 Test 比较 必须知道什么叫寄存器并且使用 EAX 累加寄存器(一般情况下,运算结果,call的结果) EBX 基址寄存器(存储的基址) ECX 计数寄存器(计次循环) EDX 数据寄存器(数据) EBP 参数或局部变量 ESP 堆栈 EDI 目的变址寄
欢迎关注我的微信公众账号:Linux技巧(微信号:irefactoring),一起学习Linux知识~~~
最近很少写博客了,一方面是近期工作比较繁忙,第二是把精力都放在GitHub和读源码去了. 申请了一个微信公众账号:Linux技巧 微信ID:irefactoring(意思是爱重构) =============================== 每天推送一条Unix/Linux 小技巧! 大家扫描一下即可添加: 一起学习Linux知识~~~
Android so注入(inject)和Hook技术学习(三)——Got表hook之导出表hook
前文介绍了导入表hook,现在来说下导出表的hook.导出表的hook的流程如下.1.获取动态库基值 void* get_module_base(pid_t pid, const char* module_name){ FILE* fp; ; char* pch; ]; ]; // 格式化字符串得到 "/proc/pid/maps" ){ snprintf(filename, sizeof(filename), "/proc/self/maps"); }else{
要成为一个 Java 架构师得学习哪些知识?
作者:zhuqz链接:https://www.zhihu.com/question/29031276/answer/54631312来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 既然java架构师,首先你要是一个高级java攻城尸,熟练使用各种框架,并知道它们实现的原理.jvm虚拟机原理.调优,懂得jvm能让你写出性能更好的代码:池技术,什么对象池,连接池,线程池...:;java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案java字节码技术;ni
Matrix学习——基础知识
以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GDI+的时候再次学习如何使用矩阵来变化图像,看了之后在这里总结说明. 首先大家看看下面这个3 x 3的矩阵,这个矩阵被分割成4部分.为什么分割成4部分,在后面详细说明. 首先给大家举个简单的例子:现设点P0(x0, y0)进行平移后,移到P(x,y),其中x方向的平移量为△x,y方向的平移量为△y,那么,点P(x,y)的坐标为: x = x0 + △x y = y0 + △y 采用矩阵表达上述如下: 上述也类似与图像的平
Java并发编程学习前期知识下篇
Java并发编程学习前期知识下篇 通过上一篇<Java并发编程学习前期知识上篇>我们知道了在Java并发中的可见性是什么?volatile的定义以及JMM的定义.我们先来看看几个大厂真实的面试题: 编辑 编辑 编辑 从上面几个真实的面试问题来看,我们可以看到大厂的面试都会问到并发相关的问题.所以 Java并发,这个无论是面试还是在工作中,并发都是会遇到的.Java并发包JUC(java.util.concurrent)有了解过哪些?并发包实现最重要的是什么?其原理是什么知道吗?何为
【python学习小知识】求绝对值和numpy和tensor的相互转换
一.python求绝对值的三种方法 1.条件判断 2.内置函数abs() 3.内置模块 math.fabs 1.条件判段,判断大于0还是小于0,小于0则输出相反数即可 # 法1:使用条件判断求绝对值 def abs_value1(): # input返回str,需转换为浮点数的格式 a = float(input('1.请输入一个数字:')) if a >= 0: a = a else: a = -a print('绝对值为:%f' % a) 2.abs()函数 # 法2:使用内置函数求绝对值
IOS科研IOS开发笔记学习基础知识
这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollView; tableScrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];//窗体大小 tableScrollView.contentSize=CGSizeMake(640, 480);//设置内容视图的大
MySQL学习基础知识1
什么是数据库? 数据库就是存储数据的仓库. 存储方式: 变量 无法永久存储 文件处理,可以永久存储,弊端:文件只能在自己的计算机读写,无法被分享(局域网除外) 数据库分类: 1.关系型数据库 提供某种机制帮你维护数据与数据之间的关系:一般是基于文件实现的 优点:容量大,可以永久存储 MySQL,免费开源,开源支持中小型企业并发 Oracle,商用收费,学习免费,功能比MySQL强大在用户管理和集群 SQL server,属于微软生态圈,只能运行在windows上 Maria DB,MySQL的创
WEB框架-Django框架学习-预备知识
今日份整理,终于开始整个阶段学习的后期了,今日开始学习Django的框架,加油,你是最胖的! 1.web基础知识 1.1 web应用 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件. 应用程序有两种模式C/S.B/S. C/S是客户端/服务器端程序,也就是说这类程序一般独立运行. 而B/S就是浏览器端/服务器端应用程序,这类应用程序一般借助谷歌,火狐等浏览器来运行. WEB应用程序一般是B/S模式.Web应用
JAVA学习基础知识总结(原创)
(未经博主允许,禁止转载!) 一.基础知识:1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. java语言是跨平台,jvm不是跨平台的. JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库. JDK(Java Development Kit):java的开发工具,包括jre+开发工具2.环境变量path和classpath的作用是什么? (1)pat
小白到web前端工程师需要学习哪些知识?
随着web3.0时代,那么web前端开发技术人才越来越吃香,而且web前端领域划分越来越细,对技术的需求越来越高,想学习web前端的人也是越来越多.那么,如何学习web前端知识?从哪开始?转型成为web前端工程师需要学些什么?小白到高手需要多久? 1.如何学习web前端知识 第一阶段,你要从最基础的HTML/CSS开始,简单地说,HTML就是一堆非常简单的标签,而CSS则是把你画画的流程用英语按一定的格式写出来.然后你需要理解常用HTML标签的意思,学会各种CSS的属性,还有CSS的盒模型.优先
Fastjsonfan反序列链学习前置知识
Fastjson前置知识 Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象. Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象 1.Fastjson基础用法 1.1.序列化与反序列基础用法 //序列化 String text = JSON.toJSONString(obj); //反序列化 VO vo = JSON.parse(); //解析为JSONObject类型或者
iOS学习新知识-加速计和陀螺仪
一.CoreMotion框架介绍 我们知道有一些iOS的应用,会有一些特殊的要求,比如: 电子罗盘指南针之类的应用:让我们知道方向. 运动类型软件:让我们知道我们跑步多少公里. 社交软件中的摇一摇功能. 游戏中扮演角色类中根据设备的晃动等进行操作. 其实,他们多半是使用了iOS中的一个核心运动框架CoreMotion.framework 使用iOS提供给我们的CoreMotion框架,主要是为了访问加速度计和陀螺仪的相关数据. 它不仅仅提供给你获得实时的加速度值和旋转速度值,更重要的是,苹果在其
ansible学习基础知识和模块(一)
基础知识补充: 常用自动化运维工具 Ansible:使用python来开发的,无需设置Agentless(代理),一般管理几百台.与ssh的方式也不一样,ssh是基于c/s模式(客户端+服务器)来使用服务端提供的服务,属于多台客户端访问一台服务器.而ansible是控制端,使用装了ansible的主机管理多台主机.也叫做主控端.Ansible是通过ssh端口来实现无代理配置. Saltstack:使用python语言开发,一般需部署agent(代理),执行效率更高,一般管理几千台. Puppet
专业的“python爬虫工程师”需要学习哪些知识?
学到哪种程度 暂且把目标定位初级爬虫工程师,简单列一下吧: (必要部分) 熟悉多线程编程.网络编程.HTTP协议相关 开发过完整爬虫项目(最好有全站爬虫经验,这个下面会说到) 反爬相关,cookie.ip池.验证码等等 熟练使用分布式 了解企业级爬虫和个人爬虫的差异(企业级爬虫,首先在数据量上跟我们平时学习的时候爬虫,不是同一数量级,数据量大很多.其次,企业级爬虫代码一般部署到专门的爬虫服务器上,采取7*24小时运行,所以需要日志监控,异常维护.) 知道什么是深度优先,广度优先的抓取算法,及实践
Java学习前知识补充
1 Java 面向对象的编程语言:为了实现人机交互需要语言的过渡(翻译)这时就需要Java虚拟机! 不同系统需要不同的虚拟机 2 学习语言第一件事 搭建环境(运行 Java需要的环境) 在甲骨文Oracle下载JDK jrea与jdk的区别 因此,下载一个jdk就可以了. 下载后的操作 1 设置系统环境,便于电脑帮助我们查找所需的资料 设置三个变量 path,home_path,classpath, 设置三个的原因是:如果改变了jdk所在的地址或名称,电脑无法识别,就需要设置动态的环境变
Android so注入(inject)和Hook技术学习(二)——Got表hook之导入表hook
全局符号表(GOT表)hook实际是通过解析SO文件,将待hook函数在got表的地址替换为自己函数的入口地址,这样目标进程每次调用待hook函数时,实际上是执行了我们自己的函数. GOT表其实包含了导入表和导出表,导出表指将当前动态库的一些函数符号保留,供外部调用,导入表中的函数实际是在该动态库中调用外部的导出函数. 这里有几个关键点要说明一下: (1) so文件的绝对路径和加载到内存中的基址是可以通过 /proc/[pid]/maps 获取到的. (2) 修改导入表的函数地址的时候需要修改页
Android so注入(inject)和Hook技术学习(一)
以前对Android so的注入只是通过现有的框架,并没有去研究so注入原理,趁现在有时间正好拿出来研究一下. 首先来看注入流程.Android so的注入流程如下: attach到远程进程 -> 保存寄存器环境 -> 获取目标程序的mmap, dlopen, dlsym, dlclose 地址 -> 远程调用mmap函数申请内存空间用来保存参数信息 -> 向远程进程内存空间写入加载模块名和调用函数->远程调用dlopen函数加载so文件 -> 远程调用dlsym函数获
android开发学习---基础知识学习、如何导入已有项目和开发一个电话拨号器
一.基础知识点学习 1.Android体系结构 如图所示,android 架构分为三层: (1)最底层是linux内核,主要是各种硬件的驱动,如相机驱动(Camera Driver),闪存驱动(Flash Memory Driver),wifi驱动(Wifi Driver)等 (2)中间一层是库包(libraries)和android运行环境(android runtime),其中库包主要包括一些协议和浏览器内核(webkit)等,android运行环境主要包括核心库包和Dalvik虚拟机 (
【调研与分析】标杆学习、知识管理和竞争情报的关系——From Team
注: 1)红色实线箭头表示可以直接使用:例如竞争情报业务输出产品之一的标杆文档可以直接作为公司标杆学习中外部标杆的资料: 2)蓝色虚线箭头表示转化后使用或者间接利用的关系:例如专题调研可以帮助建立内部优秀流程和文档模板:内部人员经验通常也可以作为专题调研确定方向或者分析问题时的有效助益.
热门专题
Eclipse打开项目老在左边
多线程窗口控件 mfc
yii2 自定义log配置
shell sqlplus 执行 多条sql
怎么根据CVE码在maven里面找到修复版本
extjs mvvm的小例子
logbac多环境配置
还需要在settings.py中加入(____) 配置项
-jar运行jar包
inotifypropertychanged优雅实现
CentOS7 安装Rinetd
强制TFS用户与计算机(域)用户同步
win10 个人热点 记录
esxi 一会要重新登录
Sql Server 服务名称被改了是什么原因
library complier 脚本
tkinter pack防范
sql server 批量新增语句
openlayers asp.net 示例
三维数组为什么很少用