mirror of
https://github.com/takeshixx/redstar-tools
synced 2025-07-17 20:43:21 +00:00
Added all ioctl commands
This commit is contained in:
@ -1,5 +1,44 @@
|
|||||||
# Interact with /dev/res
|
# Interact with `rtscan`
|
||||||
|
|
||||||
`resctl.py` can be used to interact with `rtscan` kernel module via ioctl calls to `/dev/res`.
|
`resctl.py` can be used to interact with `rtscan` kernel module via ioctl calls to `/dev/res`.
|
||||||
|
|
||||||
**TODO**: Implement all ioctl calls
|
*Note*: On Red Star 3.0 this needs to be executed with root privileges.
|
||||||
|
|
||||||
|
## Usage Examples
|
||||||
|
|
||||||
|
### Disable/Enable `rtscan`
|
||||||
|
|
||||||
|
```
|
||||||
|
# python resctl.py disable
|
||||||
|
```
|
||||||
|
```
|
||||||
|
# python resctl.py enable
|
||||||
|
```
|
||||||
|
|
||||||
|
### Protect/Hide a File
|
||||||
|
|
||||||
|
The following example adds a new file extension to the list of scanned extensions and a new file to the protected and hidden files:
|
||||||
|
|
||||||
|
```
|
||||||
|
# cat /tmp/secret.32c3
|
||||||
|
Kim loves Katy
|
||||||
|
# python resctl.py setsign .32c3
|
||||||
|
# python resctl.py protect /tmp/secret.32c3
|
||||||
|
# python resctl.py hide /tmp/secret.32c3
|
||||||
|
# cat /tmp/secret.32c3
|
||||||
|
cat: /tmp/secret.32c3: Operation not permitted
|
||||||
|
```
|
||||||
|
|
||||||
|
Disabling `rtscan` will make the file readable again:
|
||||||
|
|
||||||
|
```
|
||||||
|
# python resctl.py disable
|
||||||
|
# cat /tmp/secret.32c3
|
||||||
|
Kim loves Katy
|
||||||
|
```
|
||||||
|
|
||||||
|
*Note*: The default list of extensions added by `opprc`:
|
||||||
|
|
||||||
|
```
|
||||||
|
.mpg.dat.avi.vob.gif.doc.pdf.ppt.xls.mp3.wav.mpa.wma.asf.mp2..jpg.bmp.png.tif.jpeg.tiff.mov.wmv.mp4.rm.rmv.rmvb.swf.flv.3gp.chm..djuv.djv.caj.kdh.teb.nh.caa.docx.xlsx.pptx.txt.htm.html.mht.hwp.pdg.
|
||||||
|
```
|
||||||
|
@ -1,11 +1,60 @@
|
|||||||
#!/usr/bin/env python2
|
#!/usr/bin/env python2
|
||||||
from fcntl import ioctl
|
# This needs to run under Python2.6
|
||||||
|
import sys
|
||||||
|
import fcntl
|
||||||
|
|
||||||
filename = '/dev/res'
|
DEV = '/dev/res'
|
||||||
fd = open(filename, 'wb')
|
SCAN_ENABLE = 29188
|
||||||
ret = ioctl(fd, 29187, 0)
|
SCAN_DISABLE = 29187
|
||||||
|
ADD_PID = 29189
|
||||||
|
DEL_PID = 29193
|
||||||
|
RECV_FILES = 29191
|
||||||
|
PROTECT_FILE = 29192
|
||||||
|
UNPROTECT_FILE = 29194
|
||||||
|
HIDE_FILE = 29195
|
||||||
|
UNHIDE_FILE = 29196
|
||||||
|
SET_SIGN_EXTS = 29197
|
||||||
|
GET_SIGN_EXTS = 29198
|
||||||
|
|
||||||
if ret is not 0:
|
if __name__ == '__main__':
|
||||||
print('Error')
|
if len(sys.argv) < 2:
|
||||||
|
print('usage: {s} [CMD] [ARG]'.format(s=sys.argv[0]))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
fd.close()
|
CMD = sys.argv[1]
|
||||||
|
|
||||||
|
if len(sys.argv) is 3:
|
||||||
|
ARG = sys.argv[2]
|
||||||
|
else:
|
||||||
|
ARG = 0
|
||||||
|
|
||||||
|
if CMD == 'enable':
|
||||||
|
CMD = SCAN_ENABLE
|
||||||
|
elif CMD == 'disable':
|
||||||
|
CMD = SCAN_DISABLE
|
||||||
|
elif CMD == 'pid':
|
||||||
|
CMD = ADD_PID
|
||||||
|
elif CMD == 'unpid':
|
||||||
|
CMD = DEL_PID
|
||||||
|
elif CMD == 'recv':
|
||||||
|
CMD = RECV_FILES
|
||||||
|
elif CMD == 'protect':
|
||||||
|
CMD = PROTECT_FILE
|
||||||
|
elif CMD == 'unprotect':
|
||||||
|
CMD = UNPROTECT_FILE
|
||||||
|
elif CMD == 'hide':
|
||||||
|
CMD = HIDE_FILE
|
||||||
|
elif CMD == 'unhide':
|
||||||
|
CMD = UNHIDE_FILE
|
||||||
|
elif CMD == 'setsign':
|
||||||
|
CMD = SET_SIGN_EXTS
|
||||||
|
elif CMD == 'getsign':
|
||||||
|
CMD = GET_SIGN_EXTS
|
||||||
|
else:
|
||||||
|
print('unknown command: {c}'.format(c=CMD))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
fd = open(DEV, 'wb')
|
||||||
|
ret = fcntl.ioctl(fd, CMD, ARG)
|
||||||
|
print(ret)
|
||||||
|
fd.close()
|
||||||
|
Reference in New Issue
Block a user