- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试将系统调用动态加载到内核中(无需重新启动内核并对其进行编译),以尝试(一旦处于内核模式)写入用户进程的内存。
(我知道有一种方法可以使用 ptrace 接口(interface)执行此操作,但它不是一个选项。)
我知道唯一的方法是加载一个模块。为了允许用户与之通信,我被告知使用字符设备(应该在/dev/中,对吧?)。我成功加载了一个。我的问题是我不知道用户进程如何在没有系统调用的情况下访问它。(我被告知使用 ioctl)谁能展示用户进程如何调用 ioctl,例如由我的模块加载的?
谢谢,晒
1 Câu trả lời
For the answer below, I have assumed you to be developing a Linux module. Upon rereading your question, I see I could have misinterpreted the problem.
有几种与内核驱动程序通信的机制:
最常见的技术是最后一种技术,它使用 read()
和/或 write()
系统调用来引起驱动程序操作。虽然这些系统调用通常传递纯数据,但没有什么能阻止特定驱动程序传递 metadata。通过输入/输出接口(interface)。
另一方面,如果驱动程序已经有一个有用的纯数据规则,而 read()
Và write()
对元数据来说不是很好,那么 ioctl()
系统调用是一种通用瑞士军刀,用于执行与文件相关的各种操作,例如加载或卸载磁带、弹出 DVD、查找网卡的以太网地址,或查明发生了多少磁盘驱动器错误。已经定义了如此多的 ioctl 操作代码,您可能会找到一个合理的代码来重用您的目的。 ioctl
接口(interface)的一大缺点是它最适合由自定义程序使用,因此通过连接到标准程序流水线。
/quy trình
接口(interface)结合了前两种技术的优点:它适用于使用标准实用程序的 tiêu chuẩn
/đầu ra chuẩn
约定, 但它也通过常规驱动机制提供了一个独立于任何 I/O 的设备驱动接口(interface)。例如,在您的 Linux 系统上尝试 cat/proc/net/tcp
。它显示所有 Giao thức TCP
连接的状态。
关于实现 procfs 功能的好文章位于 create_proc_entry()
.实现 ioctl 的内容很详细 đây .元数据方法与任何其他设备驱动程序一样易于编码,尽管它可能会给有经验的实现者带来概念上的障碍。
关于linux - 用户进程如何访问我的模块加载的字符设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7653639/
Khi lập mô hình sơ đồ trường hợp sử dụng cho ứng dụng web, liệu có tốt hơn nếu tạo một vai trò cho mỗi vai trò mà người dùng có thể có không? Hoặc có vai trò, người dùng và ma trận có quyền hạn? khách < người dùng < người điều hành < Admin1: khách, người dùng, người điều hành
Tôi không thể kết nối với Postgres bằng Elixir: ** (Mix) Không thể tạo cơ sở dữ liệu cho PhoenixChat.Repo: FATAL 28P
Câu hỏi này đã có câu trả lời: Nhóm theo tên trường trong Java (7 câu trả lời) Đã đóng 7 năm trước. Tôi phải viết một phương thức lấy List
Cảm ơn sự giúp đỡ của bạn, trước tiên tôi sẽ trình bày mã: $dotaz = "Select * from customers JOIN contracts where customers.user_id = '".$_SESS
Tôi muốn hiển thị một nút cho chỉ một người dùng trong số tất cả người dùng. Tôi đã thử orderByKey() nhưng không thành công! Mô hình User có một thành viên id, tôi đã thử sử dụng orderByChild("id") nhưng kết quả vẫn như vậy! Tôi thậm chí đã thử mẹo sau
Chúng tôi đang chuyển từ MongoDB sang Postgres tại nơi làm việc và tôi đang thành lập một nhóm BDR. Ở bước này tôi đang nghĩ đến vấn đề bảo mật và khóa chặt nhất có thể. Do đó, tôi hy vọng thiết lập một người dùng sao chép (vai trò) và để BDR
xuất khẩu lớp UserListComponent thực hiện OnInit{ người dùng; constructor(private userService: UserS
Tôi có thể sử dụng Sonata User Bundle để tích hợp gói FOS vào gói Sonata Admin. Chức năng đăng nhập của tôi hoạt động tốt. Bây giờ tôi muốn thêm chức năng thay đổi mật khẩu trong FOSUserBundle vào sonata
Khi tôi tạo một ứng dụng mới trên LinkedIn, tôi nhận được 4 mã riêng biệt: Khóa API Khóa bí mật Mã thông báo người dùng OAuth Mật khẩu người dùng OAuth Tôi sử dụng hai mã đầu tiên trong luồng OAuth. Mục đích là gì? cuối cùng
Vậy là... tôi đã giải quyết được hầu hết các vấn đề. Nhưng bây giờ tôi lại phải giải quyết một vấn đề khác. Tôi đã sử dụng chuỗi kết nối này: SqlConnection con = new SqlConnection(@"Data Source=.\SQLEX
Tôi có một nhóm "Người dùng" và một nhóm "Đơn hàng". Tôi muốn liệt kê tất cả order_id cho mỗi user_id. var users = { 0: { user_id: 111, us
Tôi đã tạo một mô hình người dùng cho lớp ứng dụng Django của mình User(Model): """ Mô hình xác thực. Mô hình này chứa người dùng
Tôi gặp vấn đề này và không tìm ra giải pháp. Đang tìm kiếm một hướng đi nào đó. Tôi đang làm việc trên một dự án mới với Laravel và hiện đang nghiên cứu về xác thực người dùng. Tôi đang sử dụng mô-đun xác thực Laravels 5.8. Đã thực hiện một số thay đổi đối với chế độ xem khôi phục mật khẩu
Tôi đang cấu hình một số máy bằng ansible sau khi cài đặt. Để thực hiện việc này, tôi chạy ansible cục bộ trên máy. Người dùng "chính" trong một bản cài đặt thường có tên khác. Tôi muốn sử dụng người dùng đó trong các biến như become_user.
Tôi đang cố tạo một tệp lệnh chạy syncdb để tạo một tệp cơ sở dữ liệu, sau đó tạo một siêu người dùng với tên người dùng "admin" và mật khẩu "admin". Mã của tôi cho đến nay: python manage.
đóng cửa. Câu hỏi này dựa trên ý kiến. Hiện tại không chấp nhận câu trả lời. Bạn có muốn cải thiện câu hỏi này không? Cập nhật câu hỏi để bạn có thể trả lời bằng thông tin và trích dẫn bằng cách chỉnh sửa bài đăng này. . Đã đóng cửa cách đây 6 năm. Ngẫu hứng
Tôi đã thiết lập tính năng sao chép địa lý trên máy chủ cơ sở dữ liệu Azure của mình. Một trong những cơ sở dữ liệu đang chạy trên máy chủ có thông tin đăng nhập và người dùng mà tôi đã tạo qua SSMS: https://learn.microsoft.com/en-us/azure/s
Tôi có ứng dụng ionic 2 và tôi đang sử dụng FB Login gốc để lấy tên/hình ảnh và lưu vào NativeStorage. Quy trình là tôi mở WelcomePage, đăng nhập và lưu dữ liệu. Từ đó,
Đây là phương pháp xác thực người dùng của tôi: def user_login(request): if request.method == 'POST': username = request.POST
Tôi đang cố gắng lấy tất cả các tweet từ một người dùng cụ thể nhưng khi tôi lặp lại việc ném các tweet trong mẫu, tôi nhận được đối tượng 'Người dùng' không thể lặp lại Lượt xem tweet = User.objects.get(username__iexact='us
Tôi là một lập trình viên xuất sắc, rất giỏi!