Android 逆向Android 系统文件分析 ( /proc/pid 进程号对应进程目录 | oom_adj | maps | smaps | mem | task | environ )(代码片
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 逆向Android 系统文件分析 ( /proc/pid 进程号对应进程目录 | oom_adj | maps | smaps | mem | task | environ )(代码片相关的知识,希望对你有一定的参考价值。
文章目录
一、/proc/pid_num 进程号对应进程信息文件
在 /proc 目录下 , 有许多以整数命名的文件 ;
这些整数都是进程号 ;
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-users
1、进程查询
执行 ps -ef
命令 , 可以查看当前所有进程 , 这些进程对应的 PID 就是上述 /proc/ 目录下的所有整数对应的文件 ;
在 /proc/ 目录下使用 ls -l | grep 31359
命令 , 查询 31359
进程号对应的文件 , 该 /proc/31359 进程信息文件对应 ps -ef
输出的如下进程信息 ; 腾讯 QQ 进程对应的进程号是 31359 , 对应的进程信息文件是 /proc/31359 文件 ;
u0_a296 31359 730 2 09:52 ? 00:04:44 com.tencent.mobileqq
2、进程目录
进入 /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、进程启动命令 / 包名
/proc/31359/cmdline 文件内容 : 进程应用对应的包名 ;
walleye:/proc/31359 # cat cmdline
com.tencent.mobileqq
查看 /proc/1/cmdline 文件内容 , 1 进程号对应的进程的 cmdline 文件中 , 显示的是 /init 可执行文件 , 这是个应用程序 , 这是 android 系统启动时 , Linux 初始化 Android 环境时 , 调用到的进程 ;
walleye:/proc/1 # cat /proc/1/cmdline
/init
4、oom_adj 进程优先级
查看 /proc/31359/oom_adj 文件内容 : 16 , 这是进程的优先级 , 在之前进行进程保活时 , 分析过该参数 ; oom_adj 值越小 , 进程优先级越高 , 越不容易被杀死 ;
walleye:/proc/31359 # cat oom_adj
16
查看 /proc/31359/oom_adj 文件内容 : 该文件展示进程所使用到的内存 ;
5、maps 进程内存使用概况
查看 /proc/1/maps 文件内容 : init 进程对应的内存使用情况 ;
6、smaps 进程内存使用详情
查看 /proc/1/smaps 文件内容 : 这是进程使用内存的详细说明 , 比 maps 信息更详细 ; 内存的实际大小 Size: 2008 kB
, 真正使用的大小 Rss: 428 kB
;
这是声明了 2008kB 内存 , 只使用了 428 kB 内存 , 一旦使用了更多的内存 , 会触发缺页中断 , 由系统补上空缺的内存 , 然后结束中断 , 继续执行 ;
7、mem 进程内存映射
mem 是进程的内存映射文件 , 通过 smaps 可以获取各个模块的地址 , 如下面的 7fcf430000-7fcf451000
, 这些地址是进程内存中的偏移地址 ;
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 看做一个文件 , 使用 fseek 跳转到对应偏移地址中 , 可以读取对应地址内存中的数据 ;
Android 逆向时 , 该文件很重要 ;
8、task 子线程
查看 /proc/31359/task 目录内容 : task 目录是该进程的子线程 , 下面是腾讯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 环境变量
查看 /proc/31359/environ 文件内容 : 该文件内容是该应用环境变量配置 ;
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 #
以上是关于Android 逆向Android 系统文件分析 ( /proc/pid 进程号对应进程目录 | oom_adj | maps | smaps | mem | task | environ )(代码片的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Android 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )
Android 逆向Android 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )
Android 逆向Android 系统文件分析 ( cmdline 系统启动参数文件 | crypto 密码算法信息文件 | devices 设备信息文件 )
Android 逆向Android 系统文件分析 ( cmdline 系统启动参数文件 | crypto 密码算法信息文件 | devices 设备信息文件 )
Android 逆向Android 系统文件分析 ( 外部存储设备文件 | sbin 命令程序目录 | dev 字符设备目录 )
Android 逆向Android 系统文件分析 ( 外部存储设备文件 | sbin 命令程序目录 | dev 字符设备目录 )