Android平台
文章平均质量分 79
helloworddm
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Orleans GetGrain<T>(string) 底层原理
本文对比了Orleans异步执行模型与.NET中Task.Run/TaskFactory.StartNew的区别。Orleans采用单激活、回合制执行模型,建议使用自然的async/await方式编写逻辑。Task.Run和TaskFactory.StartNew虽然都能调度线程池任务,但后者默认使用当前调度器且需要手动Unwrap异步lambda。在Orleans中,随意使用这些方法会破坏回合调度的顺序性,导致状态安全风险。最佳实践是在Grain内优先使用async/await串行控制,仅在隔离CPU/阻原创 2025-10-31 22:21:32 · 281 阅读 · 0 评论 -
Orleans 的异步
本文对比了Orleans异步执行模型与.NET中Task.Run/TaskFactory.StartNew的区别。Orleans采用单激活、回合制执行模型,建议使用自然的async/await方式编写逻辑。Task.Run和TaskFactory.StartNew虽然都能调度线程池任务,但后者默认使用当前调度器且需要手动Unwrap异步lambda。在Orleans中,随意使用这些方法会破坏回合调度的顺序性,导致状态安全风险。最佳实践是在Grain内优先使用async/await串行控制,仅在隔离CPU/阻原创 2025-10-31 22:00:51 · 440 阅读 · 0 评论 -
Orleans 流系统握手机制详解
Orleans 流系统的握手机制是确保消息可靠投递的核心组件。它解决了分布式系统中消息投递的连续性、一致性和容错性问题。协商式设计:消费者和代理协商投递位置状态持久化:关键状态信息持久化存储容错优先:多重容错机制确保系统可用性性能优化:按需投递和状态缓存可观测性:完善的监控和日志记录这种设计使得 Orleans 流系统能够在复杂的分布式环境中提供可靠、高效的消息处理能力。原创 2025-10-18 22:21:45 · 863 阅读 · 0 评论 -
Orleans Stream SubscriptionId 生成机制详解
Orleans流系统中的subscriptionId通过两种机制生成:显式订阅使用随机GUID(最后字节高位设为0),隐式订阅基于确定性算法生成(最后字节高位设为1)。关键区别在于显式订阅需要代码调用,而隐式订阅自动匹配Grain类型和流命名空间。系统通过GUID最后字节的高位标记区分订阅类型,既保证了唯一性又支持灵活管理。这种设计平衡了性能与功能性,适用于不同订阅场景需求。原创 2025-10-18 22:05:00 · 353 阅读 · 0 评论 -
Orleans 流订阅类型检测机制详解
Orleans流订阅类型检测机制包含多层判断逻辑。编译时通过ImplicitStreamSubscriptionAttribute标记隐式订阅,运行时通过Grain类型和流命名空间匹配检查。系统还利用GUID最后字节的高位设置(0x80)来区分隐式/显式订阅。隐式订阅ID由Grain类型和流ID哈希生成,而显式订阅使用随机GUID。消息投递时通过订阅ID的位标记快速判断类型,确保消息正确路由。这种多层次的检测机制保证了流订阅系统的高效性和可靠性。原创 2025-10-18 21:55:33 · 312 阅读 · 0 评论 -
wxWidgets MainLoop 实现详解
本文深入分析了wxWidgets的事件循环(MainLoop)实现机制,通过类层次结构图、时序图和代码示例详细展示了其跨平台架构。核心内容包括:1)基于wxEventLoopBase的层次化设计;2)Windows平台的消息处理流程与预处理机制;3)线程安全实现;4)多平台实现对比;5)嵌套事件循环应用场景。文章还提供了代码优化建议和输入输出示例,帮助理解如何在实际开发中高效使用wxWidgets事件循环。该实现通过抽象接口与平台特定优化的组合,既保证了统一性又充分发挥了各平台优势。原创 2025-10-14 11:16:14 · 449 阅读 · 0 评论 -
Orleans Broadcast Channel
Orleans Broadcast Channel 是 Orleans 框架中的一个重要组件,它提供了一种一对多的消息广播机制。与传统的 Orleans Streams 不同,Broadcast Channel 专门设计用于将消息同时发送给多个订阅者,而不需要显式的订阅管理。核心优势简化订阅管理: 通过隐式订阅和属性标记,无需手动管理订阅生命周期高性能: 支持 Fire-and-Forget 模式,提供高吞吐量的消息传递类型安全: 强类型支持,编译时类型检查灵活配置: 支持同步和异步两种传递模式。原创 2025-10-11 16:22:21 · 940 阅读 · 0 评论 -
奇技淫巧抢国补
尽管使用这奇技淫巧,依然还是没有抢到。不会是内定的吧。每天试试吧,也不知道哪一次就成功了呀。更多内容,欢迎关注我的微信公众号: 半夏之夜的无情剑客。原创 2025-10-01 13:02:04 · 1580 阅读 · 0 评论 -
全盘扫描是怎么实现的
在疯狂java讲义习题11.1使用Java语言列出了指定目录的所有文件。这里使用C#来实现同样的功能,使用递归和非递归两种方式。基于文件遍历,实现类似everything的功能以及grep功能。C#微软出品,必属精品。C#和Java谁更好是一个一直存在的问题。怎么说那,如果一定要选择一个的话,我选择C#,因为.NET平台的架构是Java无法比拟的(能否最终实现,还要看微软了)。.NET架构:.NET5的架构:Ubuntu下C#开发使用的IDE是MonoDevelop(https://ww.原创 2021-05-30 11:19:16 · 886 阅读 · 0 评论 -
c#的event使用(1)
在C#中,事件是一种用于在类或对象之间进行通信的机制。当某个特定的事件发生时,与该事件相关联的方法(称为事件处理程序)将被调用。有时间到来的时候,会触发相应的注册的事件处理函数。语句调用事件处理程序。当需要触发事件时,使用。是一个事件成员变量,它是一个。原创 2023-12-14 13:22:33 · 887 阅读 · 0 评论 -
blazor webassembly前后台分离
maui blazor的出现,对于andoid平台,windows平台,苹果平台只需要一套代码,就可以在任意设备运行。前台代码通常部署在nginx下面,nginx作为最经典的反向代理服务器,具有很高的性能,这是因为它使用了多路复用技术,这个技术redis也用了,所以redis的性能会很高。中对前后台分离有基本的介绍,文章基于的是node.js做中转服务实现前后台分离。实现了客户端的实时通讯,它的计算跟渲染都在服务端处理,对服务要求还是蛮高的。随着微服务的兴起,前后台分离现在已经是非常主流的技术了。原创 2023-04-09 22:00:35 · 931 阅读 · 0 评论 -
Android音视频编码(3)
继续中的内容,在上一篇文章中,对视频解码和编码进行了详细的介绍,具体可参见。原创 2024-01-21 11:59:52 · 488 阅读 · 0 评论 -
Android分段进度条(继承View实现)
titles.add("process1"); titles.add("process2"); titles.add("process3"); titles.add("process4"); Set indexSet = new HashSet(); indexSet.add(0); indexSet.add(1); nodeProgressView.show原创 2023-12-20 13:21:41 · 997 阅读 · 0 评论 -
lldb安装以及调试Android程序
Android Studio自带lldb,安装过程不再赘述。lldb官网。原创 2023-09-19 11:40:01 · 1491 阅读 · 0 评论 -
Android 编译和使用libpng
使用上面的命令编译报错,从错误中推测应该需要zlib依赖,还需要下载zlib,由于Android自带zlib库,遂使用cmake进行。修改libpng中CmakeLists.txt中的add_library,修改为动态共享库。从上面的信息中可以看出libpng是一个历史悠久的处理png的库,需要zlib依赖。这个路径是clone下来的libpng中CmakeLists.txt所在的目录。更多内容,欢迎关注我的微信公众号: 半夏之夜的无情剑客。使用下面的命令可以直接编译为静态库。原创 2023-09-08 09:46:40 · 775 阅读 · 0 评论 -
Android资源文件以及混淆技术
Android资源文件以及混淆技术转载 2023-08-23 13:16:28 · 401 阅读 · 0 评论 -
Frida高级篇-调试
心仪预备条件安装node和npm代码提示TypeScript优点JavaScript的一个超集,扩展了JavaScript的语法。加强代码可读性。明确参数类型,代码语义更清晰易懂。更友好、更精准的代码补全提示。更贴近面向对象编程的编写习惯,利于模块化和复用。以前用 js 写的脚本也可以被 ts 直接引用,不会浪费。Frida使用TypeScriptfrida-compile將ts 编译为 可被 frida 加载的 js 文件(1)Github 直接下载大胡子的示例仓库: htt.原创 2021-10-19 19:43:54 · 1714 阅读 · 0 评论 -
编程入门(劝学)
【作者】荀子 【朝代】先秦 君子曰:学不可以已。 青,取之于蓝,而青于蓝;冰,水为之,而寒于水。木直中绳,輮以为轮,其曲中规。虽有槁暴,不复挺者,輮使之然也。故木受绳则直,金就砺则利,君子博学而日参省乎己,则知明而行无过矣。 故不登高山,不知天之高也;不临深溪,不知地之厚也;不闻先王之遗言,不知学问之大也。干、越、夷、貉(hé)之子,生而同声,长而异俗,教使之然也。诗曰:“嗟(jiē)尔君子原创 2018-01-21 15:46:57 · 740 阅读 · 0 评论 -
Android源码篇-深入理解粘性广播(1)
广播作为Android的四大组件之一,广播的用途还是非常广泛的。广播是一种同时通知多个对象的事件通知机制,顾名思义也能大概知道是这个意思,类似日常生活中的大喇叭广播,多个人可以受听,人们大都只关心和自己有关的事情,而对和自己无关的事情进行屏蔽,Android中的广播和这个差不多。...原创 2021-08-24 09:39:44 · 1918 阅读 · 0 评论 -
Android 11省电模式开启
流程图原创 2021-05-21 10:20:18 · 1509 阅读 · 3 评论 -
Fiddler Everywhere && HTTP
Fiddler Everywhere中图标The Live Traffic List uses the icons listed below to provide additional context for each recorded session. Hover on an icon on an entry in the Live Traffic list to trigger an explanatory tooltip.完整版可参考: https://docs.telerik.com/fidd原创 2021-03-20 11:39:55 · 1912 阅读 · 0 评论 -
神经网络学习之矩阵
矩阵大一的时候学习的吧,忘记了,感觉很久远了,我以为毕业之后再也用不到了,直到我了解了神经网络。以下内容是百科的解释:在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。如下是一个m*n的矩阵。[a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn]\begin{bmatrix}{a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\{原创 2021-02-05 00:07:08 · 1596 阅读 · 0 评论 -
Android apk动态调式以及UI定位
工具Android Studio,后面的内容简称AS.Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。系统app调试开发系统app的时候,大多数基于makefile的,并且签名是platform的,因此不能直接通过源码进行调试。本文不打算拿系统app来讲解如何调试,不过会使用这里的调式技巧,那么调试系统app也很简单了(系统ap原创 2021-01-23 15:19:59 · 856 阅读 · 2 评论 -
Frida高级篇-Stalker(1)
快捷键的区别三者的区别Ctrl+C :强制中断程序,程序无论运行哪里都停止。Ctrl+D :发送一个 exit 的信号,退出当前的用户或者是客户端。Ctrl+Z :暂停程序,在进程中维持挂起状态。引用别人的说法:1、Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctrl+C就会强制结束当前的这个进程。2、Ctrl+Z 是把当前的程序挂起,暂停执行这个程序,比如你正在mysql终端中,需要出来搞点其他的文件操作,又不想退出mysql终端(原创 2021-01-14 12:44:17 · 2603 阅读 · 0 评论 -
Frida工作原理
在调试和验证Frida的Stalker功能的时候,需要频繁暂停程序查看效果。因此这里是首先介绍下Linux下的暂停。在用Linux的时候,都比较熟悉下面这几中暂停方式。三种暂停的区别三者的区别Ctrl+C :强制中断程序,程序无论运行哪里都停止。Ctrl+D :发送一个 exit 的信号,退出当前的用户或者是客户端。Ctrl+Z :暂停程序,在进程中维持挂起状态。引用别人的说法:1、Ctrl+C比较暴力,就是发送Terminal到当前的程序,比如你正在运行一个查找功能,文件正在查找中,Ctr原创 2021-01-13 22:25:47 · 3868 阅读 · 0 评论 -
App动态调试(1)-Radare2和lldb
为什么不用IDA,因为贵。为什么不用gdb,因为lldb的出现,取代gdb只是迟早的事情,可以说gdb是Depracated。在 Android逆向之ARM64静态分析对app的中的so进行了动态分析,这篇文章介绍两种动态调试的方式,一种是radare2,另一种是lldb。r2frida概术Radare2 and Frida better together. 两个强大的工具放在一起,必然会产生更为强大的能量,可以称为"Best Dynamic Debugging Tool ",最主要是免费。其本质原创 2020-12-08 20:15:30 · 1238 阅读 · 0 评论 -
Java反射之实例构造
网上很多写反射的,但是对于内部类的反射涉及的非常少,尤其是这种私有的内部类。也许有人认为私有内部类是不能被外部实例化的,但是强大的反射功能突破了Java本身的一些规则。原创 2020-12-05 11:34:55 · 601 阅读 · 0 评论 -
使用Radare2静态分析apk(2)
在Radare2静态分析apk(1) 对Radare静态分析apk进行了简单的介绍。补充以下:通过r2 apk://URI可以直接对apk中的dex进行分析。原创 2020-11-30 11:55:31 · 863 阅读 · 2 评论 -
Radare2进阶之破解
文章重点基于[CrackerMe03]。这是R2 CrackerMe系列的典型的一个,算是CrackerMe系列的一个分水岭。在前面介绍破解,主要是通过修改字节码的方式,当然所有的CrackerMe都可以使用此方式。不过,这篇文章介绍一些其他的方式,主要是基于代码逻辑进行破解以及使用Emulator进行破解。CrackerMe00现说一个最简单的CrackeMe00。查看字符串信息 rabin2 -z crackme0x00通过字符串信息,大概推断密码是250382。运行程序,输入250382,Pa原创 2020-11-29 20:27:32 · 1134 阅读 · 1 评论 -
Radare2静态分析apk(1)
在逆向的世界中,有一个工具叫做IDA,它被称为神器,但是它的价格实在让人望而生畏(土豪例外)。正版的全平台下来估计要20w/年,貌似还是美元。当然了,网上有很多破解版的,这个看个人喜好,我不太习惯使用破解版的,一方面功能不全,另一方面,很不稳定。于是我就找到了一个替代IDA的工具-Radare2。个人认为除了在F5(decompiler)功能上有差距之外,其他地方两者很接近了。Radare2在 破解工具Radare2 中多Radare2进行了介绍,在 深入理解GOT覆写技术 系列文章中对Radare2在原创 2020-11-20 21:40:34 · 774 阅读 · 0 评论 -
Frida高级篇-Fiddler Everywhere手机抓包(绕过证书绑定限制)
在 抓包神器之Fiddler Everywhere及Wireshark 中讲解了Fiddler EveryWhere怎么抓取web的数据,这篇文章主要说怎么进行手机抓包以及绕过如何绕过ssl-pining技术实现抓包。纠正一个错误网上很多文章说,在进行手机抓包的时候,一定要保证手机和电脑在同一个局域网。这句话是不准确的,我认为这么说的基本上是两种情况:(1)人云亦云,别人这么说,我也这么说,应该不会错吧。(2)对抓包的原理不理解,甚至于什么是中间人攻击都不清楚。要实现抓包,需要的前提条件并不一定要原创 2020-11-15 20:32:45 · 4853 阅读 · 0 评论 -
免ROOT使用Frida(不修改源代码)
在 非ROOT环境下使用Frida及调试 中通过修改smail代码实现在非ROOT的情况下使用Frida。前面提到这种方式有一个明显的缺点就是要修改smali源代码。这篇文章主要来说怎样在不修改源代码的情况下在非ROOT情况下使用Frida。Frida-gadgetFrida的Gadget是一个共享库,可以在不适合Injected操作模式的情况下由要检测的程序加载。这可以通过多种方式完成, 例如:修改程序的源代码修补它或其一个库,例如 通过使用诸如insert_dylib之类的工具使用动态链接原创 2020-11-14 23:43:40 · 4881 阅读 · 0 评论 -
非ROOT环境下使用Frida及调试
设备Android版本: 9MIUI版本: 11.0.5稳定版手机型号: Redmi Note 8CPU信息:关于ROOTARMV8的引入以及Google对安全的重视,使得Android获取ROOT权限很难。那个仅仅依靠一个apk就能实现手机ROOT的时代基本上一去不返了。apk提权基于的是Android系统的漏洞,目前Android已经很完善了,寻找漏洞非常困难。目前获取ROOT基本都是通过刷安装包来实现。当然了Android模拟器可以很轻松获取ROOT权限。但是很多APP都对模拟器有检测,原创 2020-11-13 19:45:16 · 4686 阅读 · 0 评论 -
通过Wireshark分析HTTPS(1)
Wireshark过滤规则分析一次https连接还是这篇文章https://www.bilibili.com/read/cv7495834通过wireshark分析其中的一次https连接,过滤规则是ip.addr == 27.115.124.159(1)客户端发起SYN请求 seq = 0(2)服务器端进行确认 Ack=1 向客户端发起连接请求 seq = 0(3)客户端进行确认Ack = 1 经典的三次握手(4)客户端发送client hello(5)服务器端进行确认ACK(6)服原创 2020-11-08 00:21:42 · 2470 阅读 · 2 评论 -
抓包工具之Fiddler Everywhere以及Wireshark(1)
抓包工具有很多,比图Wireshark、tcpdump、Fiddler、Burp等。在burp Fiddler抓包软件(https://helloworddm.blog.youkuaiyun.com/article/details/98363056)对Burp和Fiddler进行了简单的介绍,同时讲解了在抓取手机数据报时如何配置证书。在黑客攻击-木马远程控制(3)对抓包的原理进行了介绍。 本文主要讲述Fiddler系列的另一个抓包神器-Fiddler Everywhere。Fiddler EverywhereFi原创 2020-10-29 20:28:57 · 1353 阅读 · 0 评论 -
Ubuntu系统安装&&解决Wi-Fi不可用
写系统安装的文章太多太多了,我为何还要写哪?因为文章太多太多了,乍一看各种操作猛如虎,实际上可能对你没有一点的帮助。好多文章只是讲解了如何安装ubuntu系统,对于安装后遇到的问题只字不提,笔者决定写一点不一样的。文章目录为和选择Ubuntu制作U盘启动盘U盘装机启动系统查看系统参数网络问题查询解决办法没有通用的方法查看无线网络的芯片驱动加载有问题?解决办法关于Linux写在最后公众号为和选择Ubuntu开源免费,功能强大,小巧精美。对于小巧的东西,个人都比较喜欢。还有友好的图形化界面,不要和win原创 2020-10-25 12:27:13 · 3185 阅读 · 3 评论 -
实战分析smali汇编代码
在黑客攻击-apk破解(1) 对apk的破解流程进行了完整的介绍。本篇文章基于解包之后的内容介绍smali汇编。汇编语言说到汇编语言,给人的感觉是很高端,很深奥,甚至于很神秘。其实这东西就是另一种形式的语言,一种非常底层的低级语言,大多数的编译型语言在编译过程中都要经历汇编的过程。比如C语言在Windows下会转化为x86/x64汇编,在Linux下会转化为ATT汇编,在Android系统上会转化为arm汇编等,很显然,汇编语言不具备跨平台的性质,在不同平台和系统中的汇编语言是不一样的。就是这些汇编语言原创 2020-10-18 17:50:50 · 2036 阅读 · 0 评论 -
Frida进阶之内存漫游以及简单抓包
在前面的系列文章中对Frida相关的API进行了介绍。文章目录Hook everything内存漫游启动objectionHook anywhere启动Activity或者Serviceobjection的缺陷退出抓包公众号Hook everythingFrida只是提供了各种API供我们调用,在此基础之上可以实现具体的功能,比如禁用证书绑定之类的脚本,就是使用Frida的各种API来组合编写而成。于是有大佬将各种常见、常用的功能整合进一个工具,供我们直接在命令行中使用,这个工具便是objection原创 2020-10-11 19:26:58 · 2328 阅读 · 0 评论 -
Frida API进阶-网络
文章目录SocketSocketListenerSocketConnection代码示例Nagle algorithmJavaScript判断数据类型公众号在聊天系统开发(1) 的文章中,对TCP/IP相关的网络编程进行了介绍。在Frida API进阶-文件 对文件描述符、输入输出流进行了介绍。本篇文章集于此介绍Frida中网络相关的API。SocketSocket.listen([options]): open a TCP or UNIX listening socket. Returns a Pr原创 2020-10-08 09:07:36 · 1676 阅读 · 0 评论 -
漏洞扫描和利用
声明:禁止用作非法目的,谢绝一切形式的转载。在这里对OpenVas进行了简单的介绍。这篇文章着重介绍通过OpenVas扫描出来漏洞之后,如何利用这些漏洞达到获取被入侵机器"肉鸡"的shell(也就是控制权)。OpenVasGSM协议NTP – Time synchronization• Connecting to 123/udp• Mandatory• Not encrypted• May use internal NTP serverFeeds (see below)• Direct原创 2020-09-20 16:49:14 · 1136 阅读 · 0 评论
分享