liwugang - page 3

Linux 下如何隐藏自己不被发现?

可能在某些情况下,自己运行的程序不想或者不方便被其他人看到,就需要隐藏运行的进程。或者某些攻击者采用了本文介绍的隐藏技术,也可以让大家看到如何进行对抗。 隐藏有两种方法: kernel 层面,不对用户层暴露该进程的信息,进程不被看见; 用户层可以看到该进程信息,但不是以真实的身份出现,而是伪造成别的程序出现,达到隐藏自己的目的。 方法一是需要修改内核,本文主要是讲第二种方法。

Read more

Coredomain 创建新的 property type

背景 Android 8.1 中引入了 Project Treble 架构,用于将 vendor 下的驱动和 Android system 系统分开,Android system 可以单独升级。SELinux 同样分成了两部分,位于 /system/etc/selinux 下的 platform 部分和位于 /vendor/etc/selinux 下的 vendor 部分。本文分析 Android 大版本升级过程中对 property 增加的一些限制,已经如何绕过这些限制。

Read more

Python实现自动化点击和输入功能

背景 由于工作上需要提交大量代码,而进代码平台上需要一个个输入change,效率太低,所以就想写个工具能够自动化进行输入,提高效率。首先想到的是chrome插件,在调研中发现服务端是使用了vue框架,难度比较大,所以就退而求其次,模拟用户输入和点击来实现。使用Python进行实现。

Read more

A Tool To Automate Multiple Commits Into One

If we have multiple commits or some patches from the software supplier, and want to synthesize one commit and retain the commit message of each one, someone knows that git rebase -i can be used to solve it, but this method requires manual for operations. If we have a lot to do, it will took a lot of time. Here I will introduce a tool which to au...

Read more

Android CTS中neverallow规则生成过程

CTS里面SELinux相关测试中neverallow测试项占绝大多数,Android系统开发者都应该知道,在修改sepolicy时,需要确保不能违反这些neverallow规则,不然会过不了CTS。CTS中nerverallow测试都是在SELinuxNeverallowRulesTest.java文件中,并且从AOSP代码中发现该文件不是人工提交的,而是通过python脚本生成的,为了以后更好的修改sepolicy,就需要了解下SELinuxNeverallowRulesTest.java是如何生成的。

Read more

ARM中的STM和LDM指令的解析

STM指令 STM是Store Multipile registers到连续的存储空间中,并且是按寄存器编号从低到高放置在存储空间的从低到高的位置中。 格式: STM[xx] Rn[!], registers Rn为base地址,后面!表示是否将放置后的地址回写到base寄存器中。registers是要放置的寄存器组,xx表示放置的方式。 xx用于确认放置根据下面两个条件区分: 1.base地址之前和之后; 2.地址是放置前增加还是后增加。 由于都是放置在连续空间中,寄存器的放置顺序固定,所以xx就是用于确定放置空间的起始地址,该地址用address表示,根据xx来看下address的计算方法,下面len(registers)表示registers中的个数。 ...

Read more

feof的陷阱

feof函数 The function feof() tests the end-of-file indicator for the stream pointed to by stream, returning nonzero if it is set. feof是用于测试当前是否文件末尾。若是末尾返回非0值。 例子 // test.c #include <stdio.h> int main() { FILE *f = fopen("empty_file", "rb"); if (f == NULL) { return -1; } while (!feof(f)) { // 判断是否文件末尾,若不是读取一个字...

Read more

OWASP Android crackmes

背景 最近在学习frida,就拿OWASP上的crackme进行练习,下载地址,关于该系列crackme分析的文章很多,我只列出相应的frida脚本。 UnCrackable App for Android Level 1 #!/usr/bin/python3 import frida import sys def on_message(message, data): if message['type'] == 'send': print("[*] {0}".format(message['payload'])) else: print(message) pid = frida.get_usb_device().spawn([...

Read more

简单C++ crackme分析

该crackme来自于这里,也可以从这里下载,是Linux平台上的C++程序,没加壳,比较简单,故将分析记录下来。 工具选择 Linux静态分析工具使用cutter, ,但由于cutter对C++的函数识别不好,故也使用IDA一起进行分析。 静态分析 先静态分析,了解程序的大概轮廓,并找到关键部分,在结合动态调试,可以达到事半功倍的效果。 搜索关键字符串 .rodata:08048DFC 00000037 C Bravo, tu peux valider en utilisant ce mot de passe... .rodata:08048E34 00000031 C Congratz. You can validate with this password... //...

Read more