plain_len(明文长度)&7的值决定 。
以解密以下C2密文为例:
ff ba a2 3b cd 5b 7b 24 8c 5f e3 4b fc 56 5b 99 ac 91 cf e3 9a 27 d4 c9 6b 39 34 ce 69 ce 18 60其与解密相关的各种参数如下图所示,密文长度为32字节,明文长度为26字节

文章插图
首先使用AES解密后得到以下“次级密文”:

文章插图
然后从
次级密文中取出有效密文,其中有效密文从第8字节开始,长度为明文长度减8,此处即为26-8=18字节 。98 1B DB D9 8B 59 19 5D 59 1B 59 D8 1D DC 8B D8 DB 5B最后通过明文长度26可以计算26&7=2,得到移位的次数,将上述有效密文逐字节左移2位,就能得到C2明文 。blog.eduelects.com持久化RotaJakiro在实现持久功能时,对root/non-root用户做了区分,不同的账号采用了不同的技术 。针对root账号的持久化实现
- 根据不同Linux系统发行版本,创建相应的自启动脚本
/etc/init/systemd-agent.conf或者/lib/systemd/system/systemd-agent.service。
Content of systemd-agent.conf-----------------------------#system-daemon - configure for system daemon#This service causes system have an associated#kernel object to be started on boot.description "system daemon"start on filesystem or runlevel [2345]exec /bin/systemd/systemd-daemonrespawnContent of systemd-agent.service-----------------------------[Unit]Description=System DaemonWants=network-online.targetAfter=network-online.target[Service]ExecStart=/usr/lib/systemd/systemd-daemonRestart=always[Install] - 用于伪装的文件名,俩者2选1
/bin/systemd/systemd-daemon/usr/lib/systemd/systemd-daemon
- 创建桌面环境的自启动脚本
$HOME/$.config/autostart/gnomehelper.desktop
[Desktop Entry]Type=ApplicationExec=$HOME/.gvfsd/.profile/gvfsd-helper - 修改.bashrc文件,创建shell环境的自启动脚本
# Add GNOME's helper designed to work with the I/O abstraction of GIO# this environment variable is set, gvfsd will not start the fuse filesystemif [ -d ${HOME} ]; then${HOME}/.gvfsd/.profile/gvfsd-helperfi - 用于用于伪装的文件名,俩者同时存在
$HOME/.dbus/sessions/session-dbus$HOME/.gvfsd/.profile/gvfsd-helper
针对root账号的进程守护实现在root账号下运行时,根据不同Linux系统发行版本,通过向服务的配置文件中写入
Restart=always或者respawn,当服务进程被结束时,会自动创建新进程 。
文章插图
实际效果如下图所示,可以看到systemd-daemon进程被结束后,立马就生成了新进程 。

文章插图
针对non-root账号的进程守护实现在non-root账号下运行时,RotaJakiro生成
session-dbus和gvfsd-helper俩个进程,它们监控着彼此的存活,当其中一方被结束时,另一方将其恢复,这是非常典型的双进程保护 。RotaJakiro的双进程保护是如何实现的呢?首先以shmget API创建一片共享内存,session-dbus和gvfsd-helper通过这片共享内存实现进程间通信,告诉对方的自己的PID 。然后通过
/proc/[PID]目录,动态地获取进程的存活情况 。当发现对方进程死亡时,通过execvp创建进程,帮助死亡一方“复活”,大致流程如下图所示:
文章插图
实际效果如下图所示,可以看到
session-dbus和gvfsd-helper被kill -9结束后,新进程立马就创建了 。
文章插图
单一实例RotaJakiro通过文件锁来实现单一实例,具体实现如下所示:

文章插图
其中用到的
lockfile在root/non-root账号下有所不同 。- root下的lockfile,2选1
/usr/lib32/.X11/X0-lock/bin/lib32/.X11/X0-lock - non-root下的lockfile,同时存在
$HOME/.X11/X0-lock$HOME/.X11/.X11-lock
推荐阅读
- 欧姆龙是哪个国家的品牌?Laneige兰芝是什么品牌?
- 言承旭微博新浪微博 蓝正龙微博
- 荷叶泽泻绞股蓝乌龙茶能减肥吗
- 云南腾冲龙江特大桥简介 龙江特大桥
- 大S|曝大S癫痫发作,具俊晔不管娇妻,卷上亿资产跑路,配图闹大乌龙
- 隆昌石牌坊 贞洁牌坊
- 1995四川尸变 九龙抬尸棺
- 爨龙颜碑高清字帖 爨龙颜碑
- 短视频龙头概念股 余额宝概念股
- 吴奇隆|胖成“成龙”的吴奇隆,年轻时有多风光?直言:奥运会教练被我打
