【Android 逆向】Android 系统文件分析 ( /proc/pid 进程号对应进程目录 | oom_adj | maps | smaps | mem | task | environ )
文章目錄
- 一、/proc/pid_num 進(jìn)程號(hào)對(duì)應(yīng)進(jìn)程信息文件
- 1、進(jìn)程查詢
- 2、進(jìn)程目錄
- 3、進(jìn)程啟動(dòng)命令 / 包名
- 4、oom_adj 進(jìn)程優(yōu)先級(jí)
- 5、maps 進(jìn)程內(nèi)存使用概況
- 6、smaps 進(jìn)程內(nèi)存使用詳情
- 7、mem 進(jìn)程內(nèi)存映射
- 8、task 子線程
- 9、environ 環(huán)境變量
一、/proc/pid_num 進(jìn)程號(hào)對(duì)應(yīng)進(jìn)程信息文件
在 /proc 目錄下 , 有許多以整數(shù)命名的文件 ;
這些整數(shù)都是進(jìn)程號(hào) ;
1|walleye:/proc # ls 1 1334 198 231 253 28 318 370 417 469 517 588 71 813 922 keys 10 14 199 23138 25331 280 3182 371 418 47 518 59 715 814 927 kmsg 100 149 19998 232 25391 281 319 372 419 470 519 590 72 82 928 kpagecount 1008 15 2 233 254 2817 32 373 420 471 52 592 720 821 93 kpageflags 101 150 20 23340 255 282 3207 374 421 472 522 5951 723 823 94 loadavg 1015 151 200 23341 25506 283 321 375 422 473 523 598 729 826 941 locks 102 152 20000 23342 2558 284 322 376 423 474 524 599 73 829 942 mdstat 1023 15329 201 23350 25584 2848 323 377 424 475 525 6 730 83 945 meminfo 1024 16 202 23354 256 285 324 378 425 476 526 60 731 830 946 misc 1028 1628 2024 23355 257 286 325 379 426 477 527 600 732 831 947 modules 103 1645 20275 23356 258 287 326 38 4260 478 528 602 74 84 95 mounts 104 1654 203 234 25844 2871 327 380 427 479 529 603 748 845 950 net 1048 16867 204 235 25852 2876 328 381 428 48 53 604 75 848 958 pagetypeinfo 105 17 205 236 25887 288 329 382 429 480 530 61 750 849 9607 partitions 106 1708 206 237 259 289 33 383 43 481 531 610 751 85 962 sched_debug 107 17695 207 238 25936 29 330 384 430 482 532 614 753 86 963 schedstat 108 1775 208 23808 25946 290 331 385 431 483 533 616 754 87 964 scsi 11 17851 2086 23855 25954 291 332 386 432 484 534 617 755 870 97 self 110 1814 209 239 260 292 333 387 433 485 535 618 756 871 98 softirqs 111 184 21 2391 26020 293 338 388 434 486 536 62 757 873 983 stat 1110 1849 210 23937 26021 294 339 389 435 487 537 625 758 877 985 swaps 112 185 211 23967 26086 295 343 39 436 488 538 626 759 878 986 sys 113 1850 21123 23993 261 296 344 390 437 489 539 63 76 879 99 sysrq-trigger 11348 1851 21137 23997 26159 297 345 391 438 49 54 637 761 88 999 thread-self 11349 186 212 24 262 298 346 392 439 490 540 638 762 880 asound timer_list 114 18691 213 240 26209 299 347 393 44 491 542 639 764 881 ath_pktlog timer_stats 115 187 21399 241 26248 2990 348 394 440 494 543 64 765 882 buddyinfo tty 11529 18751 214 24133 26268 3 349 395 441 495 544 640 766 884 bus uid 116 188 2150 242 26298 30 35 396 442 496 546 641 767 885 cgroups uid_cpupower 117 18838 21537 24217 263 300 350 397 443 499 547 646 768 889 cld uid_cputime 1176 18865 217 243 26320 301 351 398 444 5 548 65 7686 89 cmdline uid_io 118 189 218 24327 26346 302 352 40 445 500 549 650 769 890 config.gz uid_procstat 1184 1895 219 24378 26365 303 353 401 446 501 55 652 77 891 consoles uid_time_in_state 1185 19 22 24397 264 304 354 402 447 502 550 655 770 897 cpuinfo uptime 119 19048 220 244 265 3048 355 4022 45 503 551 656 771 898 crypto version 1191 19060 221 245 266 305 356 403 450 504 552 657 772 9 debugdriver vmallocinfo 12 19088 222 24510 267 306 357 404 451 505 553 667 774 90 device-tree vmstat 120 191 223 246 268 3078 358 405 453 5050 554 669 78 900 devices zoneinfo 121 19120 224 247 269 308 359 406 454 506 555 67 781 909 diskstats 1213 1915 22417 248 27 309 36 407 455 507 556 677 784 91 driver 122 192 225 24836 270 31 361 408 456 508 56 679 787 910 execdomains 123 1924 226 249 271 310 362 409 457 509 564 68 79 912 fb 1259 193 22686 24977 272 311 363 41 459 51 565 683 791 913 filesystems 12843 19313 22695 24992 273 312 364 410 46 510 566 684 795 914 fs 13 194 227 25 274 313 365 411 460 511 568 685 798 915 interrupts 1315 19489 228 250 275 31359 366 412 461 512 57 688 8 917 iomem 1316 195 229 251 276 314 367 413 462 513 571 69 801 918 ioports 1331 196 23 25122 277 315 368 414 463 514 574 7 804 919 irq 1332 197 230 252 278 316 369 415 464 515 586 70 807 92 kallsyms 1333 19791 23051 25299 279 317 37 416 465 516 587 7022 81 921 key-users1、進(jìn)程查詢
執(zhí)行 ps -ef 命令 , 可以查看當(dāng)前所有進(jìn)程 , 這些進(jìn)程對(duì)應(yīng)的 PID 就是上述 /proc/ 目錄下的所有整數(shù)對(duì)應(yīng)的文件 ;
在 /proc/ 目錄下使用 ls -l | grep 31359 命令 , 查詢 31359 進(jìn)程號(hào)對(duì)應(yīng)的文件 , 該 /proc/31359 進(jìn)程信息文件對(duì)應(yīng) ps -ef 輸出的如下進(jìn)程信息 ; 騰訊 QQ 進(jìn)程對(duì)應(yīng)的進(jìn)程號(hào)是 31359 , 對(duì)應(yīng)的進(jìn)程信息文件是 /proc/31359 文件 ;
u0_a296 31359 730 2 09:52 ? 00:04:44 com.tencent.mobileqq2、進(jìn)程目錄
進(jìn)入 /proc/31359 目錄中 , 有如下文件 :
walleye:/proc # cd 31359 walleye:/proc/31359 # ls attr concurrent_active_time exe maps ns root stat timerslack_ns auxv concurrent_policy_time fd mem oom_adj sched statm wchan cgroup coredump_filter fdinfo mountinfo oom_score schedstat status clear_refs cpuset io mounts oom_score_adj smaps syscall cmdline cwd limits mountstats pagemap smaps_rollup task comm environ map_files net personality stack time_in_state walleye:/proc/31359 #3、進(jìn)程啟動(dòng)命令 / 包名
/proc/31359/cmdline 文件內(nèi)容 : 進(jìn)程應(yīng)用對(duì)應(yīng)的包名 ;
walleye:/proc/31359 # cat cmdline com.tencent.mobileqq查看 /proc/1/cmdline 文件內(nèi)容 , 1 進(jìn)程號(hào)對(duì)應(yīng)的進(jìn)程的 cmdline 文件中 , 顯示的是 /init 可執(zhí)行文件 , 這是個(gè)應(yīng)用程序 , 這是 Android 系統(tǒng)啟動(dòng)時(shí) , Linux 初始化 Android 環(huán)境時(shí) , 調(diào)用到的進(jìn)程 ;
walleye:/proc/1 # cat /proc/1/cmdline /init4、oom_adj 進(jìn)程優(yōu)先級(jí)
查看 /proc/31359/oom_adj 文件內(nèi)容 : 16 , 這是進(jìn)程的優(yōu)先級(jí) , 在之前進(jìn)行進(jìn)程保活時(shí) , 分析過(guò)該參數(shù) ; oom_adj 值越小 , 進(jìn)程優(yōu)先級(jí)越高 , 越不容易被殺死 ;
walleye:/proc/31359 # cat oom_adj 16查看 /proc/31359/oom_adj 文件內(nèi)容 : 該文件展示進(jìn)程所使用到的內(nèi)存 ;
5、maps 進(jìn)程內(nèi)存使用概況
查看 /proc/1/maps 文件內(nèi)容 : init 進(jìn)程對(duì)應(yīng)的內(nèi)存使用情況 ;
6、smaps 進(jìn)程內(nèi)存使用詳情
查看 /proc/1/smaps 文件內(nèi)容 : 這是進(jìn)程使用內(nèi)存的詳細(xì)說(shuō)明 , 比 maps 信息更詳細(xì) ; 內(nèi)存的實(shí)際大小 Size: 2008 kB , 真正使用的大小 Rss: 428 kB ;
這是聲明了 2008kB 內(nèi)存 , 只使用了 428 kB 內(nèi)存 , 一旦使用了更多的內(nèi)存 , 會(huì)觸發(fā)缺頁(yè)中斷 , 由系統(tǒng)補(bǔ)上空缺的內(nèi)存 , 然后結(jié)束中斷 , 繼續(xù)執(zhí)行 ;
7、mem 進(jìn)程內(nèi)存映射
mem 是進(jìn)程的內(nèi)存映射文件 , 通過(guò) smaps 可以獲取各個(gè)模塊的地址 , 如下面的 7fcf430000-7fcf451000 , 這些地址是進(jìn)程內(nèi)存中的偏移地址 ;
7fcf430000-7fcf451000 rw-p 00000000 00:00 0 [stack] Size: 132 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Rss: 12 kB Pss: 12 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 12 kB Referenced: 12 kB Anonymous: 12 kB AnonHugePages: 0 kB Shared_Hugetlb: 0 kB Private_Hugetlb: 0 kB Swap: 28 kB SwapPss: 28 kB Locked: 0 kB VmFlags: rd wr mr mw me gd ac將 mem 看做一個(gè)文件 , 使用 fseek 跳轉(zhuǎn)到對(duì)應(yīng)偏移地址中 , 可以讀取對(duì)應(yīng)地址內(nèi)存中的數(shù)據(jù) ;
Android 逆向時(shí) , 該文件很重要 ;
8、task 子線程
查看 /proc/31359/task 目錄內(nèi)容 : task 目錄是該進(jìn)程的子線程 , 下面是騰訊QQ 的子線程 ;
1|walleye:/proc/31359 # ls attr comm cwd io mountinfo oom_adj root stack task auxv concurrent_active_time environ limits mounts oom_score sched stat time_in_state cgroup concurrent_policy_time exe map_files mountstats oom_score_adj schedstat statm timerslack_ns clear_refs coredump_filter fd maps net pagemap smaps status wchan cmdline cpuset fdinfo mem ns personality smaps_rollup syscall walleye:/proc/31359 # cat task/ cat: task/: Is a directory 1|walleye:/proc/31359 # 1|walleye:/proc/31359 # cd task/ walleye:/proc/31359/task # ls 13090 16652 2015 2381 31370 31389 31484 31504 31563 31666 31696 31731 31766 31791 31831 31870 32482 5933 1484 16663 2084 2440 31371 31395 31493 31505 31564 31667 31697 31733 31774 31792 31834 31876 32500 5934 1485 1702 2104 31359 31372 31396 31494 31507 31566 31668 31699 31741 31777 31793 31838 31877 32545 5935 16427 1733 2113 31364 31373 31397 31495 31508 31580 31678 31700 31744 31778 31808 31844 31931 32557 5942 16429 1841 2120 31365 31377 31399 31496 31509 31589 31680 31701 31751 31779 31810 31845 32240 32603 16430 1842 2125 31366 31379 31408 31497 31512 31592 31685 31702 31752 31780 31823 31846 32241 3711 16434 1918 2226 31367 31380 31409 31498 31514 31617 31687 31703 31753 31783 31826 31848 32242 5555 16442 1945 2273 31368 31381 31410 31502 31522 31653 31693 31704 31757 31785 31828 31857 32243 5565 16456 2013 2374 31369 31388 31413 31503 31538 31654 31694 31710 31765 31790 31830 31868 32340 5566 walleye:/proc/31359/task #9、environ 環(huán)境變量
查看 /proc/31359/environ 文件內(nèi)容 : 該文件內(nèi)容是該應(yīng)用環(huán)境變量配置 ;
walleye:/proc/31359 # cat environ PATH=/sbin:/system/sbin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbinDOWNLOAD_CACHE=/data/cacheANDROID_BOOTLOGO=1ANDROID_ROOT=/systemANDROID_ASSETS=/system/appANDROID_DATA=/dataANDROID_STORAGE=/storageEXTERNAL_STORAGE=/sdcardASEC_MOUNTPOINT=/mnt/asecBOOTCLASSPATH=/system/framework/core-oj.jar:/system/framework/core-libart.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/bouncycastle.jar:/system/framework/apache-xml.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/android.hidl.base-V1.0-java.jar:/system/framework/android.hidl.manager-V1.0-java.jar:/system/framework/framework-oahl-backward-compatibility.jar:/system/framework/android.test.base.jar:/system/framework/com.google.vr.platform.jarSYSTEMSERVERCLASSPATH=/system/framework/services.jar:/system/framework/ethernet-service.jar:/system/framework/wifi-service.jar:/system/framework/com.android.location.provider.jarANDROID_SOCKET_zygote_secondary=12walleye:/proc/31359 # walleye:/proc/31359 #總結(jié)
以上是生活随笔為你收集整理的【Android 逆向】Android 系统文件分析 ( /proc/pid 进程号对应进程目录 | oom_adj | maps | smaps | mem | task | environ )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Android 逆向】Android
- 下一篇: 【Android 逆向】Android