首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

so 文件解析详解

解析 elf 文件有啥子用?最明显两个用处就是:1、so 加固;2、用于 frida(xposed) 检测! 本文使用 c 语言,编译器为 vscode。如有错误,还请斧正!!!...解析语言之所以选择 c 语言,有两个原因: 1、做 so 加固时候可以需要用到,这里就干脆用 c 写成一个模板,哪里需要就哪里改,不像上次解析 dex 文件时候用 python 写,结果后面写指令还原时候需要用时候在写一遍...c 版本代价太大了; 2、在源码中,有个elf.h文件,这个文件定义了我们解析时需要用到所有数据结构,并且给出了参考注释,是很好参考资料。...2、e_type 字段:表示是可执行文件还是链接文件等, so 文件就是分享文件,一般该字段为 3,详细请看下图。...PS: 从这里开始网上参考资料很少了,特别是参考代码,所以有错误地方还请斧正;因为以后so加固等只涉及到几个节区,所以只解析了.shstrtab、.strtab、.dynstr、.text、.

3.2K41
您找到你想要的搜索结果了吗?
是的
没有找到

基础干货(八):进程学习

windows下服务:没有界面、长期运行在后台应用程序; android下服务:应用程序一个组件,没有界面activity,长期运行在后台; 进程:是应用程序运行载体。...进程生命周期: 1、应用程序一启动时候就创建了进程; 2、当应用程序退出时候进程并没有退出; 3、只有手工停止这个进程,进程才会结束; 操作系统尽量长时间运行应用程序进程,为了保证内从空间不被大量占用...,它会按照进程优先级,从低到高一级一级杀死进程,直到内存空间被清理差不多。...(重点) 本地服务:写在自己应用程序工程里服务 ,使用自己应用程序进程运行这个服务; 远程服务:写在别的应用程序工程里服务,使用别的应用程序进程运行这个服务(安装在同一个手机上应用程序)...; IPC: Inter Process Communication(进程间通讯); aidl: Android Interface definition language 接口定义语言; aidl

4K10

基础干货(七):广播学习

为什么需要广播接受者 广播: 1、电台:发送一定频道广播消息,50mhz; 2、收音机:调整到一定频道,接收广播消息; android应用程序里面的电台:系统内置一个服务,会把事件(电量不足、电量充满...、开机启动完成)作为一个广播消息发送其他接收者; android应用程序里面的收音机:自己写一个广播接收者一个类。...,系统会自动启动广播接收者进程,调用onReceive方法,接收消息。...2.3模拟器,4.0之后版本没有卸载、挂载、移除SD卡功能。...就能接收到广播; //发送一个广播消息(无序广播) sendBroadcast(intent); 有序广播: 当广播把消息发送出去后,消息会根据广播接收者优先级从高到低一级一级地下发消息。

3.9K10

日历_公认不卡手机

本篇文章主要说一下月日历数据、月视图绘制以及点击日期实现。 数据 数据部分,网上能找到比较完整工具类,主要是根据本月和上月天数以及本月第一天是周几来计算。...首先计算上月日期: 由本月第一天是周几和上个月天数,得出上月日期显示 int temp = lastMonthDays - firstDayOfWeek + 1;//上个月天数减去本月第一天周几再加上...1 再计算本月日期:本月内数据根据该月天数跑循环。...四个点确定一个矩形,可以在纸上画一下大致图案,大致画个一两行矩形,应该就找到规律了,感觉有点像以前上学时做找规律数学题。...: 1、是不是本月数据(用颜色区分本月和其他月数据) 2、是不是今天 3、有没有选中日期 4、显示不显示农历 其中今天和选中日期用圆环表示,就需要在当天和选中日期矩形中绘制圆环。

4.9K30

toast_toast使用

大家好,又见面了,我是你们朋友全栈君。 概述 一个 toast 是在屏幕上弹出一条信息,它大小总是包裹着需要显示内容,并且当前 Activity 依然是可见并且可互动。...该方法需要三个参数:当前应用 Context ,文本消息,和toast持续时间。该方法返回一个实例化过Toast对象。...我们toast提示是显示在底部正中间。...之后,我们向布局中添加我们布局,这里,我们添加一个简单视图。 自定义布局 通常情况下,默认布局很难满足我们需求,在toast中也可以使用自定义布局。...android:id="@+id/textView" android:layout_gravity="center_horizontal" /> 在线程中使用 根据编程规范

6.4K10

如何从电脑直接控制手机 监控手机 手机如何控制手机

,然后运行,然后进入Setting,点击User's settings,然后Create new user(我新建了一个叫做ACE用户),注意这里在豌豆荚截图只是做教程用,实际不需要连接豌豆荚,甚至不需要...如果你连上了WIFI,则多了两个,最前面的192.168.1.100就是局域网访问地址,用局域网地址访问很快。...当然如果仅仅是局域网,这个webkey就没意义了,局域网控制软件到处都是,我们就是要真正远程控制。...image.png 在浏览器中输入这个网址,点击Login(用刚才在手机上新建用户登录) image.png 登录成功之后,你就可以远程遥控手机了,下面一列可以打电话,回主页等等,上面还可以显示这个手机当前所有信息...image.png 手机远程监控手机也是可以,在RemoteScreen里面,输入要控制手机用户名和密码即可(前提是被控制手机也装了这个软件并创建了新用户) image.png 关注我,每天分享知识干货

16.5K30

基础干货(六):Activity学习

标签值就它界面的标题 4、activitylabel标签值就它桌面快捷图标的名称 5、application中label标签和activity中label标签不是一个概念,application...中label表示应用程序名称,activity中label标签表示是它界面的名称。...uri = intent.getData(); 意图设计目的 意图设计目的:解耦,实现应用程序高内聚、低耦合。...onStart:当界面可见时候调用 onResume 按钮可以被点击时候 onPause 按钮失去焦点时候: onStop 界面不可见时候调用: onDestroy 销毁activity...android:launchMode="singleTop" 如果任务栈栈顶存在这个要开启activity,不会重新创建activity,而是复用已经存在activity。

2.8K10

组件

Activity是用户和应用直接交互窗口,它负责管理和处理应用UI部分。 核心功能 管理UI: Activity 负责加载和管理应用界面布局。...处理用户交互: Activity 通过监听用户触摸、点击等操作来响应用户输入。...它允许一个应用程序通过 ContentProvider 接口访问另一个应用程序数据,比如联系人、媒体文件等。ContentProvider 提供了标准API来查询、插入、更新和删除数据。...理解和掌握这些组件工作原理是成为一名合格Android开发者关键。 在《第一行代码——Android》中,这些组件都有详细讲解和实战示例,帮助你更好地理解和应用这些核心概念。...希望这份指南能为你Android开发之旅提供帮助!如果你有更多问题或需要更深入讨论,欢迎在评论区分享你想法!

4910

系统框架介绍(常用框架)

大家好,又见面了,我是你们朋友全栈君。 一、什么是Android? Android是由谷歌公司开发一种基于Linux开源操作系统。...,上层Java程序通过JNI调用 主要包含:Lib c ,OpenGL,SSL …… Android应用都是用JAVA语言开发,JAVA是一门解释性语言,它需要运行在虚拟机环境下, Android...Runtime和Dalvik都是解释器,Dalvik是Android 4.4以前版本使用,ART是4.4以后版本。...部分硬件厂商不愿意将自己硬件相关一些核心东西开源出去,假如将对自己硬件驱动程序全部放入内核空间驱动程序实现,那么必须遵循GPL协议,是必需开源。...有了HAL层之后,他们可以把一些核心算法之类东西实现放在HAL层,而hal层位于用户空间,不属于linux内核,和android源码一样遵循是appache协议,这个是可以开源或者不开

8.4K40

ExpandableListView详细使用教程(附代码解析过程)

大家好,又见面了,我是你们朋友全栈君。...ExpandableListView 一、实现效果 二、实现步骤 1.编写父布局parent.xml 2.编写子布局child.xml 3.编写适配器类GradeAdapter 三、解析适配器类 一...getGroupView(),返回外面那层布局视图,也就是各种课程名称以及分数: getChildView(),返回子布局里面的视图,也就是每门学科详细信息: GradeAdapter详细代码为...tv_gpa; TextView tv_college; TextView tv_class; TextView tv_teacher; } } 三、解析适配器类...  适配器类有一个私有列表变量,列表类型为Grade,Grade是一个封装好关于成绩信息类,Grade.java代码为: package com.example.edm.Student; public

1K20

逆向系列篇:工具总结

文章首发于奇信攻防社区 原文链接:https://forum.butian.net/share/648 一、开发工具 开发工具主要是一些Java开发环境、集成开发环境和开发环境等 1、JDK...在官网直接下载即可,双击安装 安装类型 确认安装 二、逆向工具 这部分介绍逆向工具是一些用于反编译、逆向分析工具,可以将源程序反编译成可读代码,如Android Killer、Jadx...代码 简单使用 在smali文件中按q可以反编译回java代码 按Ctrl+b下断点 三、调试工具 这部分为调试工具,主要先介绍下载及安装,JEB动态调试在本文第六节中介绍,其余IDEA和...工具,将apk文件拖入可以查看是否加壳 3、模拟器 如果没有真机做实验情况下,可以使用模拟器用于实验,大部分模拟器都可以完成实验内容,但是注意模拟器也是一个虚拟机,不建议在虚拟机内安装模拟器...这里介绍几款不错模拟器。

8.9K31

基础干货(三):数据库学习

---- title: 基础干货(三):数据库学习 copyright: true categories: 基础干货 date: 2018-01-10 19:35:26 tags: [Android...BLOB(二进制对象)数据类型,也接受varchar(n)、char(n)、decimal(p,s) 等数据类型, SQLite最大特点是你可以把各种类型数据保存到任何字段中,而不用关心字段声明数据类型是什么...primary key autoincrement, name varchar(20)) SQLite可以解析大部分标准SQL语句,如: 查询语句:select * from 表名 where 条件子句...helper = new DBHelper(this, "account.db", null, 1); onCreate是在数据库创建时候调用,主要用来初始化数据表结构和插入数据初始化记录...onUpGrade是在数据库版本升级时候调用,主要用来改变表结构 2、调用db = helper.getWritableDatabase(),得到数据对象 数据库sql语句增删改查 创建表结构:

2.7K20

基础干货(十):多媒体编程学习

多种媒体综合。图片、音乐、视频。 计算机表示图形方式 1、bmp 以高质量保存所有类型图片,用于计算机。...每个像素点颜色是一个RGB,使用6个十六进制数值来表示。 文件头信息占用数据大小。 体积比较大。 2、jpg 以良好质量保存图片,用于计算机、电子邮件或网络。...jpg 工业图形压缩算法,类似rar算法。人眼识别精度有限,把相邻空间内类似的颜色使用同一个颜色来表示。 体积减小,失真。...RGB ARGB 32 应用程序在启动时系统为它创建一个进程,系统为每个进程创建dalvik虚拟机(模拟器设置VM Heap),当图片大小大于虚拟机堆内存空间时,就内存溢出(内存泄露);...解决办法:缩放图片加载到内存 步骤: 1、获得设备屏幕分辨率; 2、得到原图分辨率; 3、通过比较得到一个合适比例值; 4、按照比例值缩放图片 5、把图片显示在imageview 缩放图片并加载到内存中

1.4K10

DNS 解析DNS 解析过程分析

解析》对 DNS 解析整个过程进行了阐述,在这里我就简单通过对这篇文章分析来讲述解析这一过程吧。...最后查找 ISP DNS 缓存和递归搜索那就更值得怀疑了,首先我设置 DNS 解析地址不一定是 ISP 所提供地址,我大可选择一些公共 DNS ,谷歌、微软、腾讯等公司都对外提供公共 DNS 解析...这里不得不再提DNS 迭代查询方式和递归查询方式,实际情景可能会较为复杂,甚至出现不同方式混合情况,这里简单进行如下不严谨表述:迭代解析方式中客户端依次访问不同级别的域名解析服务器进行查询递归请求中由服务器完成解析直接返回给客户端...(客户端仅发送一起解析请求即可完成解析)主机记录和 TTL在腾讯云 DNS 解析常见问题文档中有了详细陈述,这里直接引用:要指向主机服务商提供 IP 地址,选择类型 A;要指向一个域名,选择类型...dns={Base 64 编码后 DNS 请求}即可进行 DOH 请求,例如上述例子解析为:https://9.9.9.9/dns-query?

112K134

系统usb调试在哪_手机usb调试

大家好,又见面了,我是你们朋友全栈君。 Android手机USB调试在哪?手机如何打开USB调试模式?...如果我们要将手机连接到电脑上,从而传输文件、下载应用或ROOT等,都需要打开手机USB调试模式。...系统版本有很多,它们打开方法也各不相同,下面给大家介绍各版本手机打开USB调试模式方法。...4、再返回设置菜单界面选择开发者者选项; 5、点击打开右上角开关,即可打开 USB调试模式; 6、打开USB调试模式后,下拉手机通知栏,将手机上连接电脑USB模式设置为“仅充电”模式或“媒体设备...上述便是手机打开USB调试模式方法,需要将手机连接电脑下载应用或干嘛,可以按照小编描述方法来打开USB调试模式。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

3.8K40

】在中使用HTTP协议最佳实践

中使用HTTP协议最佳实践 在开发应用时,网络通信是一个不可或缺方面。HTTP协议是许多应用程序数据交换基础,因此了解如何正确地使用它对于确保应用性能和安全性至关重要。...DnsResolver API 使用示例: // 使用getaddrinfo()方法来解析DNS查询 InetAddress[] addresses = InetAddress.getAllByName...处理DNS查询 在Android 10(API级别29)和以上版本中,设备已经有内置支持专业DNS查询功能。通过DnsResolver API,可以进行异步解析,包括SRV、NAPTR等记录类型。...这样可以更容易地管理不同部分应用程序中网络请求。 结论 在应用开发中,正确使用HTTP协议对于提供良好用户体验和保护用户数据至关重要。...希望这篇文章能够帮助您理解在中使用HTTP协议重要性以及如何实现最佳实践。

5810
领券