Android 逆向Android 進程注入工具開發 ( 系統調用 | Android NDK 中的系統調用示例 )

      網友投稿 894 2025-03-31

      文章目錄

      一、系統調用

      二、Android NDK 中的系統調用示例

      一、系統調用

      在 " 用戶層 " , 運行的都是用戶應用程序 ;

      用戶層 下面 是 驅動層 , 驅動層 下面是 系統層 , 最底層是 BIOS ; 系統層 包含 系統內核 ;

      層級從上到下 : 用戶層 | 驅動層 | 系統層 | BIOS ;

      上述 4 4 4 層之間 , 不可以直接跨越 , 應用想要讀取 驅動 / 內核 的數據是不被允許的 , 強行訪問會導致崩潰 ;

      應用的功能 需要借助 驅動實現 , 如文件讀寫 , 肯定要借助 硬盤驅動 實現 文件 在硬盤上的讀寫操作 ;

      使用 " 軟中斷 " 實現跨層訪問 , 軟中斷是由軟件發起的 , 不是由錯誤導致 ;

      調用 read 方法 , 讀取文件 , 觸發了軟中斷 , 以 arm 為例 , 執行 SVC 指令 , 參數 0 , 在 R0 中可以設置另外的參數 , 該 R0 參數指定調用什么功能 ;

      整個應用進程的控制權此時就交給了 驅動層 / 系統層 , 在這些底層具體執行了哪些操作 , 應用層是不知道的 ;

      arm 架構的 CPU 中軟中斷指令是 SVC ;

      x86 架構的 CPU 中軟中斷指令是 int ;

      與 軟中斷 相對應的是 硬中斷 ; 硬中斷 是由 硬件產生 ;

      二、Android NDK 中的系統調用示例

      系統調用相關的頭文件定義在 D:\Microsoft\AndroidNDK64\android-ndk-r16b\sysroot\usr\include\asm-generic\unistd.h 文件中 ; 在該文件中定義了所有的系統調用 ;

      #include #ifndef __SYSCALL #define __SYSCALL(x,y) #endif #if __BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT) #define __SC_3264(_nr,_32,_64) __SYSCALL(_nr, _32) #else #define __SC_3264(_nr,_32,_64) __SYSCALL(_nr, _64) #endif #ifdef __SYSCALL_COMPAT #define __SC_COMP(_nr,_sys,_comp) __SYSCALL(_nr, _comp) #define __SC_COMP_3264(_nr,_32,_64,_comp) __SYSCALL(_nr, _comp) #else #define __SC_COMP(_nr,_sys,_comp) __SYSCALL(_nr, _sys) #define __SC_COMP_3264(_nr,_32,_64,_comp) __SC_3264(_nr, _32, _64) #endif #define __NR_io_setup 0 #define __NR_io_destroy 1 #define __NR_io_submit 2 #define __NR_io_cancel 3 #define __NR_io_getevents 4 #define __NR_setxattr 5 #define __NR_lsetxattr 6 #define __NR_fsetxattr 7 #define __NR_getxattr 8 #define __NR_lgetxattr 9 #define __NR_fgetxattr 10 #define __NR_listxattr 11 #define __NR_llistxattr 12 #define __NR_flistxattr 13 #define __NR_removexattr 14 #define __NR_lremovexattr 15 #define __NR_fremovexattr 16 #define __NR_getcwd 17 #define __NR_lookup_dcookie 18 #define __NR_eventfd2 19 #define __NR_epoll_create1 20

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      【Android 逆向】Android 進程注入工具開發 ( 系統調用 | Android NDK 中的系統調用示例 )

      30

      31

      32

      33

      34

      35

      36

      37

      以 #define __NR_getuid 174 系統調用為例 , 174 對應的 16 進制數為 0xAE ;

      進行軟中斷時 , 執行如下匯編執指令時 ,

      MOV R0, 0xAE SVC 0

      1

      2

      會自動執行 #define __NR_getuid 174 對應的系統調用 ;

      Android 任務調度

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:python--pickle持久化(十九)
      下一篇:如何把word里的表格弄到一頁
      相關文章
      久久久青草青青亚洲国产免观| 久久久久久亚洲av成人无码国产| 亚洲精品国产专区91在线| 亚洲成AV人片天堂网无码| 亚洲国产电影av在线网址| 亚洲男人天堂2022| 亚洲成A人片在线播放器| 91在线亚洲综合在线| 精品亚洲国产成人| 2020国产精品亚洲综合网 | 国产精品亚洲综合五月天| 亚洲中字慕日产2020| 在线综合亚洲中文精品| 在线a亚洲老鸭窝天堂av高清| 最新国产精品亚洲| 亚洲AV女人18毛片水真多| 噜噜综合亚洲AV中文无码| 亚洲av区一区二区三| 亚洲AV中文无码乱人伦| 亚洲色偷偷狠狠综合网| 亚洲午夜无码久久久久| 久久精品国产精品亚洲艾| 亚洲黄色网址大全| 亚洲五月丁香综合视频| 亚洲av无码专区在线观看下载| 国产亚洲视频在线观看| 亚洲高清成人一区二区三区| 国产亚洲精品线观看动态图| 国产亚洲成AV人片在线观黄桃 | 亚洲人成网站在线在线观看| 久久久久亚洲AV无码去区首| 亚洲精品无码你懂的网站| a级亚洲片精品久久久久久久| 久久亚洲高清观看| 亚洲精品国产福利片| 日韩亚洲人成在线| 亚洲a∨无码精品色午夜| 亚洲国产成人a精品不卡在线| 亚洲色大成网站WWW久久九九| 亚洲天堂中文资源| 亚洲a级在线观看|