LINUX
文章平均质量分 66
helloworddm
这个作者很懒,什么都没留下…
展开
-
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 · 658 阅读 · 0 评论 -
Windows创建服务(.NET8)
Windows服务是一种在Windows操作系统中运行的后台程序,用于在系统启动时启动并在系统关闭时关闭。这些服务可以是Microsoft自己的服务,也可以是第三方软件的服务。Windows服务通常用于在计算机上提供系统级别的功能和服务,例如打印服务、数据库服务、网络服务、系统安全服务等。通常,Windows服务可以在服务控制管理器(SCM)中进行配置和管理。ChatGPT最大的BOSS也是微软,只能说微软是真的强,虽错过了移动互联网,但凭借云计算和人工智能的布局,我想会再一次登顶科技圈。原创 2023-12-06 16:05:56 · 1896 阅读 · 0 评论 -
lldb安装以及调试Android程序
Android Studio自带lldb,安装过程不再赘述。lldb官网。原创 2023-09-19 11:40:01 · 814 阅读 · 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 · 498 阅读 · 0 评论 -
深度学习书籍
TensorFlow深度学习——手把手教你掌握100个精彩案例》《NumPy攻略:Python科学计算与数据分析》《深度学习与图像识别:原理与实践》《python编程:从入门到实践》原创 2023-08-23 13:33:05 · 381 阅读 · 0 评论 -
主流语言运行系统命令
【代码】主流语言运行系统命令。原创 2023-02-02 16:52:34 · 186 阅读 · 0 评论 -
unidbg模拟执行so(1)
在 Android逆向之ARM64静态分析 对ARM64汇编进行了介绍,网传ARMV9要出来了,难道又要重新学习ARMV9? 在Frida高级篇-免ROOT使用Frida(不修改源代码) 中对elf文件进行了介绍,本文使用Unicorn模拟执行so来分析native方法。unidbgAllows you to emulate an Android native library, and an experimental iOS emulation....原创 2021-08-23 20:34:41 · 445 阅读 · 0 评论 -
JavaScript之QuickJs
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。JavaScript和Java的区别在我刚开始学JavaScript的时候,总感觉Java和JavaScript差不多,所以就没怎么关注JavaScript,直到工作后才知道,两者没有啥关系。有说有,那就是JavaScrip原创 2021-08-02 14:39:40 · 1578 阅读 · 0 评论 -
Fiddler Everywhere抓包之视频下载
曾几何时,看视频的时候都是可以下载的,不过不知道什么时候起,在线的视频不能下载了,很多精彩的内容想回味第二遍的时候居然要收费了,比如周星驰孟达的系列电影。本文通过Fiddler Everywhere来获取下载内容。主要是mp4文件和m3u8格式文件的下载。MP4MP4是一套用于音频、视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的“动态图像专家组”(Moving Picture Experts Group,即MPEG)制定,第一版在1998年10月通过,第二版在1999原创 2021-03-13 15:14:14 · 5836 阅读 · 3 评论 -
python源码安装(实现多个版本的python共存)
操作系统Ubuntu 16.04默认python 3的版本是3.5源码安装下载python3.9安装(1)解压文件 tar -xvf Python-3.9.1.tar.xztar命令使用可以通过tar --help 来查看。(2)进入解压后的文件夹cd Python-3.9.1(3)配置 配置文件 ./configure --prefix=/usr/local/python3 --with-ssl查看configure文件可以知道参数的作用:Installation原创 2021-01-07 18:50:02 · 388 阅读 · 0 评论 -
Java反射之实例构造
private static Object getInnerInstance(Test001 test001) { Object object = null; try { Class[] innnerClass = test001.getClass().getDeclaredClasses(); for (Class c: innnerClass){ if (c.getName().ind...原创 2020-12-05 11:34:55 · 428 阅读 · 0 评论 -
Ubuntu系统安装&&解决Wi-Fi不可用
写系统安装的文章太多太多了,我为何还要写哪?因为文章太多太多了,乍一看各种操作猛如虎,实际上可能对你没有一点的帮助。好多文章只是讲解了如何安装ubuntu系统,对于安装后遇到的问题只字不提,笔者决定写一点不一样的。文章目录为和选择Ubuntu制作U盘启动盘U盘装机启动系统查看系统参数网络问题查询解决办法没有通用的方法查看无线网络的芯片驱动加载有问题?解决办法关于Linux写在最后公众号为和选择Ubuntu开源免费,功能强大,小巧精美。对于小巧的东西,个人都比较喜欢。还有友好的图形化界面,不要和win原创 2020-10-25 12:27:13 · 2859 阅读 · 3 评论 -
shellcode编写32位(Linux)
系统调用shellcode是一组可注入的指令,可以在被攻击的程序中运行。由于shellcode要直接操作寄存器和函数,所以必须是十六进制的形式。那么为什么要写shellcode呢?因为我们要让目标程序以不同于设计者预期的方式运行,而操作的程序的方法之一就是强制它产生系统调用(system,call,syscall)。通过系统调用,你可以直接访问系统内核。在Linux里有两个方法来执行系统调用,间接的方法是c函数包装(libc),直接的方法是用汇编指令(通过把适当的参数加载到寄存器,然后调用int 0x原创 2020-06-06 23:36:52 · 1353 阅读 · 0 评论 -
Unix攻击
后续文章会对内容展开,更多内肉可关注公众号:原创 2020-06-05 23:35:21 · 229 阅读 · 0 评论 -
Android启动流程
“当按下手机开机键的时候,究竟发生了什么”总览Android的启动流程是一个非常复杂的流程,如果有什么遗漏,还望多多指教。这里简单说下基本的流程:(1)当按下手机的开机键的时候,引导芯片代码从与预定以(固化在ROM)的地方开始执行。加载Bootloader到RAM中执行。(2)BootLoader主要用来拉起操作系统OS。(2)Linux内核启动,寻找init.rc文件。(3)启动init进程,开启属性服务,通过init进程启动Zygote进程。(4)通过Zygote进程启动SystemSer原创 2020-05-23 18:24:38 · 219 阅读 · 0 评论 -
Java 网络进程
``` if (Intent.ACTION_USER_REMOVED.equals(intent.getAction())){ Log.d(LOGTAG, " because user is removed"); try { /// Process p = Runtime.getRuntim...原创 2020-04-07 14:13:16 · 272 阅读 · 0 评论 -
Kali Linux root账号
最新版本的Kali Linux的账号名和密码都是Kali.如何切换root如果想切换为root,步骤如下:设置密码sudo passwd root切换身份su图示过程如下图所示:原创 2020-02-27 23:35:33 · 8655 阅读 · 0 评论 -
常见应用层协议端口号
常见协议和端口号原创 2020-02-24 12:47:19 · 2054 阅读 · 0 评论 -
C语言中 .h文件和.c文件的区别
要理解.c文件与.h文件有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段2.词法与语法分析阶段3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息...原创 2017-08-06 18:16:12 · 64843 阅读 · 3 评论 -
LINUX多路复用select,poll,epoll
1 selectselect()系统调用提供一个机制来实现同步多元I/O:#include time.h>#include #include int select (int n,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout);原创 2017-08-06 18:12:29 · 249 阅读 · 0 评论 -
Linux上的虚拟化技术
虚拟化技术的应用十分广泛. 当前虚拟化技术主要关注于服务器的虚拟化, 或在单个主机上寄存多个独立的操作系统. 本文首先介绍虚拟化技术的原理, 然后讨论多个虚拟化技术的实现方法. 另外介绍了一些其它的虚拟化技术, 比如Linux上操作系统级的虚拟化技术. 虚拟化把事物从一种形式改变为另一种形式. 计算机的虚拟化使单个计算机看起来像多个计算机或完全不同的计算机. 虚拟化技术也可以使多台计算原创 2017-08-06 18:15:50 · 25848 阅读 · 1 评论 -
状态转化图
开篇 编译,简单的说,就是把源程序转换为可执行程序。从hello world 说程序运行机制 里面简单的说明了程序运行的过程,以及一个程序是如何一步步变成可执行文件的。在这个过程中,编译器做了很多重要的工作。对底层该兴趣的我,自然的,也就迫切想搞清楚编译的内部实现,也就是编译的原理。 这篇文章主要说的是编译器前端,词法分析器的原理,最后会给出一个词原创 2017-08-06 18:15:48 · 24126 阅读 · 0 评论 -
linux内核编程4部曲之四:模块编程
linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说linux内核编程4部曲之二:增加linux内核系统调用linux内核编程4部曲之三:修改O(1)调度算法linux内核编程4部曲之四:模块编程 一、实验要求 添加系统调用加减乘除,并通过模块加载,实现加减乘除。二、增加系统调用 按照实验一的步骤增加系统调用:原创 2017-08-06 18:15:39 · 225 阅读 · 0 评论 -
linux内核编程4部曲之三:修改O(1)调度算法
linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说linux内核编程4部曲之二:增加linux内核系统调用linux内核编程4部曲之三:修改O(1)调度算法linux内核编程4部曲之四:模块编程 一、实验目的 修改O(1)调度程序,使交互性非常强的程序(IO密集型)在时间片用完后,不放置到活动数组,而放入过期数组(与O(1)调度实现相反)原创 2017-08-06 18:15:36 · 510 阅读 · 0 评论 -
linux内核编程4部曲之二:增加linux内核系统调用
linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说linux内核编程4部曲之二:增加linux内核系统调用linux内核编程4部曲之三:修改O(1)调度算法linux内核编程4部曲之四:模块编程 本文,承接上面一篇linux内核编译,增加系统调用后,需要重新编译内核。一、实验目的 增加加减乘除系统调用,并测试系统调用和用户调用的原创 2017-08-06 18:15:33 · 326 阅读 · 0 评论 -
GDB简单调试linux内核与模块的方法
gdb 对于看系统内部是非常有用. 在这个级别精通调试器的使用要求对 gdb 命令有信心, 需要理解目标平台的汇编代码, 以及对应源码和优化的汇编码的能力. 调试器必须把内核作为一个应用程序来调用. 除了指定内核映象的文件名之外, 你需要在命令行提供一个核心文件的名子. 对于一个运行的内核, 核心文件是内核核心映象, /proc/kcore. 一个典型的 gdb 调用看来如原创 2017-08-06 18:15:53 · 1552 阅读 · 0 评论 -
Linux下OpenSSL 安装详解 +图解
安装环境: 操作系统:redhat 12.0 OpenSSL Version:openssl-0.9.8lDownload安装包(Linux source) : openssl-0.9.8l.tar.gz(or the latest version of openssl) 下载地址:http://www.openssl.org/so原创 2017-08-06 18:17:02 · 2478 阅读 · 0 评论 -
send和recv函数解析(转)
转自:http://blog.csdn.net/gogor/archive/2010/09/20/5896931.aspx1. send函数int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户端还是服务器端应用程序都用send函数来向TCP连接的另一端发送数据。客户端程序一般用send函数向服务器发送请求,而服务原创 2017-08-06 18:17:32 · 399 阅读 · 0 评论 -
linux内核中等待队列(wait_event,wake_up...)
根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析 介绍这几个函数,不得不先介绍等待队列wait_queue_head_t 等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。等待队列 (一)数据结构 等待队列结构如下,因为每个等待队列都可以再中断时被修改,原创 2017-08-06 18:18:07 · 533 阅读 · 0 评论 -
Linux用户空间与内核空间
Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。段页式机制如下图。 Linux内核地址空间划分原创 2017-08-06 18:18:10 · 461 阅读 · 0 评论 -
dwarf
在这部分,我将解释调试器如何明白,在它跋涉机器代码里,在哪里找到C函数与变量,以及它用来在C源代码与机器语言内存字间进行映射的数据。 调试信息 现代编译器在翻译高级语言代码方面做得相当好。其良好缩进及嵌套的控制结构以及任意类型的变量被翻译为一大堆称为机器码的比特,主要目的是在目标CPU上运行得尽可能地快。大多数C代码行被翻译为多条机器代码指令。变量则被到处乱塞——进入栈,进原创 2017-08-06 18:18:13 · 2947 阅读 · 0 评论 -
linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说
linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说linux内核编程4部曲之二:增加linux内核系统调用linux内核编程4部曲之三:修改O(1)调度算法linux内核编程4部曲之四:模块编程一、编译环境 ubuntu 5.10,要编译的内核源码版本2.6.12 二、下载并解压源代码 首先从linux内核的官网www原创 2017-08-06 18:18:22 · 541 阅读 · 0 评论 -
Linux启动过程详解
启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。启动第二步--读取MBR众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boo原创 2017-08-06 18:15:30 · 629 阅读 · 0 评论 -
虚拟地址的结构与操作
在Linux中,struct vm_area_struct表示的虚拟地址是给进程使用的,在虚拟地址中,给定一个地址,试图找到结束地址高于addr的第一个区间经常用到。find_vma()它扫描当前进程地址空间的vm_area_struct结构所形成的红黑树,试图找到结束地址高于addr的第一个区间;1578 /* Look up the first VMA which satisfies add原创 2017-08-06 18:15:27 · 932 阅读 · 0 评论 -
gdb查看内存区命令
用gdb查看内存格式: x /nfu 说明x 是 examine 的缩写n表示要显示的内存单元的个数f表示显示方式, 可取如下值x 按十六进制格式显示变量。d 按十进制格式显示变量。u 按十进制格式显示无符号整型。o 按八进制格式显示变量。t 按二进制格式显示变量。a 按十六进制格式显示变量。i 指令地址格式c 按字符格式显示变量。f 按浮点数格式显示变量。u表示一个地址单元的原创 2017-08-06 18:15:25 · 572 阅读 · 0 评论 -
test_and_set_bit
Man page of test_and_set_bit(int nr, volatile void *addr)这样描述它的功能: "Set a bit and return its old value" nr -- Bit to set addr -- Address to count from 注意:nr是需要设置的“哪一位”,而不是将ad原创 2017-08-06 18:13:12 · 2723 阅读 · 0 评论 -
netstat
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,语 法:netstat [-acCeFghilMnNoprstuvVwx][-A网络类型>][--ip]补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。参 数:-a或--all 显示所有连线中的Socket。-A网络类型原创 2017-08-06 18:13:06 · 528 阅读 · 0 评论 -
linux iostat命令
原文地址:iostat命令详解" href="http://blog.sina.com.cn/s/blog_5edf89770100wgom.html" target=_blank>linux iostat命令详解作者:天之翼Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。原创 2017-08-06 18:13:03 · 438 阅读 · 0 评论 -
select poll epoll的区别
系统调用 select poll epoll 事件集合 用户通过3个参数分别传入感兴趣的可读可写和异常原创 2017-08-06 18:12:58 · 188 阅读 · 0 评论 -
http https
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTT原创 2017-08-06 18:12:52 · 433 阅读 · 0 评论