烬柒小云
码龄2年
关注
提问 私信
  • 博客:99,778
    99,778
    总访问量
  • 99
    原创
  • 15,694
    排名
  • 850
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:大学生

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:河南省
  • 毕业院校: 南阳理工学院
  • 加入CSDN时间: 2022-08-14
博客简介:

SXXYNHHXX的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    4
    当前总分
    770
    当月
    42
个人成就
  • 获得1,260次点赞
  • 内容获得17次评论
  • 获得1,190次收藏
  • 代码片获得3,983次分享
创作历程
  • 79篇
    2024年
  • 20篇
    2023年
成就勋章
TA的专栏
  • 安卓逆向
    27篇
  • 逆向
    17篇
  • 加密算法
    4篇
  • java
    6篇
  • c语言
    9篇
  • Linux
    8篇
  • Web
    8篇
  • 题解
    1篇
  • 考试专区
    3篇
  • SSM
  • PE解释器
    4篇
兴趣领域 设置
  • Python
    pythonhttpxpip
  • 编程语言
    c语言汇编
  • 开发工具
    idevim
  • 数据结构与算法
    算法数据结构
  • 网络空间安全
    网络安全
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

182人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

使用 unicorn 和 capstone 库来模拟 ARM Thumb 指令的执行,并实现多个钩子(hook)来监控代码执行、系统调用和内存读写操作(二)

使用unicorn和capstone库来模拟 ARM Thumb 指令的执行,并实现了多个钩子(hook)来监控代码执行、系统调用和内存读写操作。主要功能是加载一段机器码,执行这些指令,并在执行过程中打印出相关信息。这些钩子提供了对模拟器执行过程的深入监控,允许开发者在指令执行、系统调用和内存操作时获取详细信息。这对于调试、分析和理解程序的行为非常有帮助。通过这些钩子,开发者可以实时观察寄存器和内存的状态变化,从而更好地理解程序的执行流程。
原创
发布博客 3 小时前 ·
335 阅读 ·
21 点赞 ·
0 评论 ·
4 收藏

使用 unicorn 和 capstone 库来模拟 ARM Thumb 指令的执行(一)

这段代码使用了unicorn和capstone库来模拟 ARM Thumb 指令的执行。它的主要功能是加载一段机器码,执行这些指令,并打印出执行前后寄存器的值。反汇编: 代码首先将机器码反汇编为可读的汇编指令,并打印出每条指令的信息。模拟执行: 使用 Unicorn 模拟器执行这些指令,并在执行前后打印寄存器的值,以便观察指令对寄存器的影响。寄存器操作: 通过指令的执行,寄存器的值会根据指令的逻辑进行更新。
原创
发布博客 3 小时前 ·
299 阅读 ·
4 点赞 ·
0 评论 ·
11 收藏

认识一下ollvm的三种混淆(指令替换,虚假的控制流程,控制流平坦化)

描述这种混淆技术的目标只是将标准的二进制运算符(如加法、减法或布尔运算符)替换为功能等效但更复杂的指令序列。当有多个等效的指令序列可用时,随机选择一个。这种混淆相当简单,并且不会增加很多安全性,因为可以通过重新优化生成的代码来轻松删除它。但是,如果伪随机生成器的种子具有不同的值,则指令替换会带来生成的二进制的多样性。目前,只有整数运算符可用,因为替换浮点值的运算符会带来舍入误差和不必要的数值不准确。可用的编译器选项mllvm -sub:激活指令替换:如果通道已激活,则将其应用于函数 3 次。
原创
发布博客 2024.11.07 ·
856 阅读 ·
29 点赞 ·
0 评论 ·
27 收藏

开发的角度认识一下防止模拟执行和反调试函数(RC4算法)

RC4 是一种对称密钥加密算法,意味着加密和解密使用相同的密钥。它的工作原理基于一个伪随机生成器,生成一个密钥流,然后将该密钥流与明文进行异或运算以生成密文。
原创
发布博客 2024.11.06 ·
943 阅读 ·
18 点赞 ·
0 评论 ·
27 收藏

安卓逆向之过frida检测总结版

启动一个服务(fs1),监听。使用adb设置端口转发,使得本地计算机的6666端口可以与 Android 设备的6666端口通信。使用 Frida 连接到这个服务,指定要注入的目标应用程序(wuaipojie)和要加载的脚本(hook.js。
原创
发布博客 2024.11.04 ·
772 阅读 ·
21 点赞 ·
0 评论 ·
21 收藏

安卓逆向之ARM汇编寻址,汇编指令

寄存器移位寻址允许对寄存器的值进行位移操作,适用于算术和逻辑运算。加载/存储寻址方式是 ARM 汇编中最常用的方式,用于在寄存器和内存之间传输数据。栈寻址是通过栈实现局部变量和函数调用的管理,使用PUSH和POP指令进行操作。在 ARM 汇编语言中,指令集非常丰富,涵盖了数据处理、控制流、内存访问等多个方面。以下是一些常见的 ARM 汇编指令的详细介绍,包括它们的功能、语法和示例。将两个寄存器的值相加,并加上进位标志(C)。语法示例。
原创
发布博客 2024.10.29 ·
843 阅读 ·
24 点赞 ·
0 评论 ·
17 收藏

ELF文件格式解读及其生成过程(上)

Exccutable和Linkable标识ELF文件的俩大特性:可执行和可链接。ELF文件由各种各样的结构体连接在一起。1.Executable(执行状态)ELF文件将参与文件的执行工作,包括二进制程序的运行以及动态so的加载,它保持一个Execution View执行状态。它的单位是段。2.Linkable(链接状态)链接态的单位是节,链接视图在一个个节中,它的组成就是一个个节,我们介绍的就是这些节,了解这些节就可以清楚的认识链接视图。16// 魔数和其他信息// 其他字段...
原创
发布博客 2024.10.29 ·
1083 阅读 ·
13 点赞 ·
0 评论 ·
20 收藏

pthread_create

是 POSIX 线程(Pthreads)库中的一个函数,用于创建一个新的线程。这个函数允许程序在运行时并发执行多个线程,从而提高程序的效率和响应能力。
原创
发布博客 2024.10.22 ·
386 阅读 ·
15 点赞 ·
0 评论 ·
1 收藏

认识一下:__asm { int 80h; LINUX - sys_fork }

是一个用于调用 Linuxfork系统调用的汇编指令。虽然可以直接使用汇编语言进行系统调用,但在实际开发中,使用标准库函数通常是更好的选择。补充一下其他的c语言系统函数。
原创
发布博客 2024.10.22 ·
458 阅读 ·
3 点赞 ·
0 评论 ·
5 收藏

xposed与frida有什么区别?

Xposed 是一个框架,允许用户在不修改 APK 文件的情况下更改系统和应用程序的行为。它通过替换。
原创
发布博客 2024.10.21 ·
383 阅读 ·
6 点赞 ·
0 评论 ·
11 收藏

dlopen函数

dlopen是一个强大的函数,允许程序在运行时动态加载共享库,提供了灵活性和扩展性。通过结合使用dlsym和dlclose,开发者可以有效地管理动态库的加载和使用。正确使用dlopen可以帮助开发者构建更灵活和可扩展的应用程序。
原创
发布博客 2024.10.15 ·
371 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

ART下的system.loadlibrary和System.load详细介绍

方法用于加载本地库(native library),这些库通常是用 C 或 C++ 编写的,并通过 Java Native Interface (JNI) 与 Java 代码进行交互。方法用于加载本地库(native library),与。在 Android Runtime (ART) 环境下,类似,但它的使用方式和参数略有不同。假设你有一个本地库文件位于。在 Android 中,
原创
发布博客 2024.10.15 ·
782 阅读 ·
8 点赞 ·
0 评论 ·
10 收藏

【安卓逆向之内存读写

在 Android 逆向工程中,内存读写是一个常见的操作,通常用于分析和修改应用程序的行为。
原创
发布博客 2024.10.11 ·
280 阅读 ·
6 点赞 ·
0 评论 ·
1 收藏

IDA dump so脚本

要创建一个IDA脚本用于将特定内存区域的数据dump到文件,我们可以使用IDA Python API。
原创
发布博客 2024.09.29 ·
231 阅读 ·
9 点赞 ·
0 评论 ·
3 收藏

IDA快捷键

步过,一条一条执行命令,但是不进入子函数调用,并把寄存器的信息加入到Run跟踪的存储数据中。Ctrl+F11:Run跟踪步入,一条一条执行命令,进入每个子函数调用,并把寄存器的信息加入到Run跟踪的存储数据中。shift+f12:可以打开string窗口,一键找出所有的字符串,右击setup,还能对窗口的属性进行设置。Ctrl+F8:自动步过,一条一条的执行命令,程序到达断点,或者发生异常时,自动步过过程都会停止。Ctrl+F7:自动步入,在所有的函数调用中一条一条地执行命令,断点或异常时,自动 停止。
原创
发布博客 2024.09.24 ·
424 阅读 ·
4 点赞 ·
0 评论 ·
6 收藏

.plt段和.got段

plt段是动态链接的重要组成部分,允许程序在运行时调用动态库中的函数。通过延迟绑定机制,.plt提高了程序的灵活性和可扩展性。.got段是动态链接的重要组成部分,允许程序在运行时访问动态库中的全局变量和函数。通过动态链接器的重定位机制,.got提高了程序的灵活性和可扩展性。
原创
发布博客 2024.09.24 ·
604 阅读 ·
25 点赞 ·
0 评论 ·
6 收藏

进一步对.bss段,.data段和.text段的认识

全称.bss段的全称是 “Block Started by Symbol”。用途.bss段用于存储未初始化的全局变量和静态变量。它的主要目的是节省存储空间,因为未初始化的变量在程序加载时不会占用实际的存储空间,只在运行时分配内存。用途.data段用于存储程序中所有已初始化的数据。这些数据在程序编译时就已经被赋予了初始值。.text段是可执行文件(如 ELF、PE 等)中的一个重要部分,专门用于存储程序的可执行代码。它包含了程序中所有函数的机器指令,是程序的核心所在。
原创
发布博客 2024.09.24 ·
927 阅读 ·
28 点赞 ·
0 评论 ·
19 收藏

INIT与init_array

使用INIT可以在 JNI 中创建 Java 对象。通过NewObject调用构造函数,并使用和调用对象的方法。确保在适当的地方释放局部引用,以避免内存泄漏。使用INITARRAY可以在 JNI 中创建和初始化 Java 对象数组。通过创建数组,并使用方法将元素添加到数组中。确保在适当的地方释放局部引用,以避免内存泄漏。这种方式可以有效地在 C++ 和 Java 之间传递对象数组,方便在 Android 应用中实现复杂的数据结构。static {
原创
发布博客 2024.09.22 ·
881 阅读 ·
15 点赞 ·
0 评论 ·
13 收藏

作业报告┭┮﹏┭┮(Android反调试)

主要是用来防止IDA进行附加的,主要的方法思路就是,判断自身是否有父进程,判断是否端口被监听,然后通过调用so文件中的线程进行监视,这个线程开启一般JNI_OnLoad中进行开启的。但是这个是在这个之前断开的。思路→过反调试的话呢,就要把相关的函数进行NOP掉,直接将这几个字节改为00就可以了。
原创
发布博客 2024.09.22 ·
824 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

安卓逆向之NDK内存管理

局部引用是在 JNI 方法中创建的对象引用,这些引用在方法执行期间有效。当 JNI 方法返回时,这些局部引用会被自动释放。局部引用的作用范围仅限于创建它们的 JNI 方法。局部引用是 JNI 中管理 Java 对象的基本机制。正确使用和管理局部引用可以避免内存泄漏和局部引用表溢出。通过手动删除不再需要的引用和使用局部引用帧,可以有效地控制内存使用。全局引用是在 JNI 中创建的对象引用,可以在整个应用程序生命周期内使用。持久性:全局引用在创建后不会自动释放,直到调用显式删除。跨方法和线程。
原创
发布博客 2024.09.18 ·
853 阅读 ·
24 点赞 ·
0 评论 ·
13 收藏
加载更多