当前位置: 首页 > news >正文

哪些公司经常做网站百度关键词优化软件排名

哪些公司经常做网站,百度关键词优化软件排名,国家征信系统查询官网,网页模板快速建站工具Debug Linux using ProcDump By Gaurav Kamathe July 17, 2020 译者#xff1a;wxy 校对#xff1a;wxy 微软越来越心仪 Linux 和开源#xff0c;这并不是什么秘密。在过去几年中#xff0c;该公司稳步地增加了对开源的贡献#xff0c;包括将其部分软件和工具移植到 L…Debug Linux using ProcDump By Gaurav Kamathe July 17, 2020 译者wxy 校对wxy 微软越来越心仪 Linux 和开源这并不是什么秘密。在过去几年中该公司稳步地增加了对开源的贡献包括将其部分软件和工具移植到 Linux。2018 年底微软宣布 将其 Sysinternals 的部分工具以开源的方式移植到 LinuxLinux 版的 ProcDump 是其中的第一个。 如果你在 Windows 上从事过调试或故障排除工作你可能听说过 Sysinternals它是一个“瑞士军刀”工具集可以帮助系统管理员、开发人员和 IT 安全专家监控和排除 Windows 环境的故障。 Sysinternals 最受欢迎的工具之一是 ProcDump。顾名思义它用于将正在运行的进程的内存转储到磁盘上的一个核心文件中。然后可以用调试器对这个核心文件进行分析了解转储时进程的状态。因为之前用过 Sysinternals所以我很想试试 ProcDump 的 Linux 移植版。 开始使用 Linux 上的 ProcDump 要试用 Linux 上的 ProcDump你需要下载该工具并编译它。我使用的是 Red Hat Enterprise Linux尽管这些步骤在其他 Linux 发行版上应该是一样的 $ cat /etc/redhat-release Red Hat Enterprise Linux release 8.2 (Ootpa) $ $ uname -r 4.18.0-193.el8.x86_64 $首先克隆 Linux 版 ProcDump 的版本库。 $ git clone https://github.com/microsoft/ProcDump-for-Linux.git Cloning into ProcDump-for-Linux... remote: Enumerating objects: 40, done. remote: Counting objects: 100% (40/40), done. remote: Compressing objects: 100% (33/33), done. remote: Total 414 (delta 14), reused 14 (delta 6), pack-reused 374 Receiving objects: 100% (414/414), 335.28 KiB | 265.00 KiB/s, done. Resolving deltas: 100% (232/232), done. $ $ cd ProcDump-for-Linux/ $ $ ls azure-pipelines.yml CONTRIBUTING.md docs INSTALL.md Makefile procdump.gif src CODE_OF_CONDUCT.md dist include LICENSE procdump.1 README.md tests $接下来使用 make 构建程序。它能准确地输出编译源文件所需的 GCC 命令行参数。 $ make rm -rf obj rm -rf bin rm -rf /root/ProcDump-for-Linux/pkgbuild gcc -c -g -o obj/Logging.o src/Logging.c -Wall -I ./include -pthread -stdgnu99 gcc -c -g -o obj/Events.o src/Events.c -Wall -I ./include -pthread -stdgnu99 gcc -c -g -o obj/ProcDumpConfiguration.o src/ProcDumpConfiguration.c -Wall -I ./include -pthread -stdgnu99 gcc -c -g -o obj/Handle.o src/Handle.c -Wall -I ./include -pthread -stdgnu99 gcc -c -g -o obj/Process.o src/Process.c -Wall -I ./include -pthread -stdgnu99 gcc -c -g -o obj/Procdump.o src/Procdump.c -Wall -I ./include -pthread -stdgnu99 gcc -c -g -o obj/TriggerThreadProcs.o src/TriggerThreadProcs.c -Wall -I ./include -pthread -stdgnu99 gcc -c -g -o obj/CoreDumpWriter.o src/CoreDumpWriter.c -Wall -I ./include -pthread -stdgnu99 gcc -o bin/procdump obj/Logging.o obj/Events.o obj/ProcDumpConfiguration.o obj/Handle.o obj/Process.o obj/Procdump.o obj/TriggerThreadProcs.o obj/CoreDumpWriter.o -Wall -I ./include -pthread -stdgnu99 gcc -c -g -o obj/ProcDumpTestApplication.o tests/integration/ProcDumpTestApplication.c -Wall -I ./include -pthread -stdgnu99 gcc -o bin/ProcDumpTestApplication obj/ProcDumpTestApplication.o -Wall -I ./include -pthread -stdgnu99 $编译过程中会创建两个新的目录。第一个是 obj/ 目录存放编译期间创建的对象文件。第二个也是更重要的目录是 bin/它是存储编译出的 procdump 程序的地方。它还会编译另一个名为 ProcDumpTestApplication 的测试二进制文件 $ ls obj/ CoreDumpWriter.o Handle.o ProcDumpConfiguration.o ProcDumpTestApplication.o TriggerThreadProcs.o Events.o Logging.o Procdump.o Process.o $ $ ls bin/ procdump ProcDumpTestApplication $ $ file bin/procdump bin/procdump: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]6e8827db64835ea0d1f0941ac3ecff9ee8c06e6b, with debug_info, not stripped $ $ file bin/ProcDumpTestApplication bin/ProcDumpTestApplication: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]c8fd86f53c07df142e52518815b2573d1c690e4e, with debug_info, not stripped $在此情况下每次运行 procdump 实用程序时你都必须移动到 bin/ 文件夹中。要使它在系统中的任何地方都可以使用运行 make install。这将这个二进制文件复制到通常的 bin/ 目录中它是你的 shell $PATH 的一部分 $ which procdump /usr/bin/which: no procdump in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin) $ $ make install mkdir -p //usr/bin cp bin/procdump //usr/bin mkdir -p //usr/share/man/man1 cp procdump.1 //usr/share/man/man1 $ $ which procdump /usr/bin/procdump $安装时ProcDump 提供了一个手册页你可以用 man procdump 访问 $ man procdump $运行 ProcDump 要转储一个进程的内存你需要向 ProcDump 提供它的进程 IDPID。你可以使用机器上任何正在运行的程序或守护进程。在这个例子中我将使用一个永远循环的小 C 程序。编译程序并运行它要退出程序按 CtrlC如果程序在后台运行则使用 kill 命令并输入 PID $ cat progxyz.c #include stdio.h int main() {for (;;){printf(.);sleep(1);}return 0; } $ $ gcc progxyz.c -o progxyz $ $ ./progxyz [1] 350498 $运行该程序你可以使用 pgrep 或 ps 找到它的 PID。记下 PID $ pgrep progxyz 350498 $ $ ps -ef | grep progxyz root 350498 345445 0 03:29 pts/1 00:00:00 ./progxyz root 350508 347350 0 03:29 pts/0 00:00:00 grep --colorauto progxyz $当测试进程正在运行时调用 procdump 并提供 PID。下面的输出表明了该进程的名称和 PID并报告它生成了一个核心转储文件并显示其文件名 $ procdump -p 350498 ProcDump v1.1.1 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process exceeds the specified criteria. Process: progxyz (350498) CPU Threshold: n/a Commit Threshold: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Press Ctrl-C to end monitoring without terminating the process. [03:30:00 - INFO]: Timed: [03:30:01 - INFO]: Core dump 0 generated: progxyz_time_2020-06-24_03:30:00.350498 $列出当前目录的内容你应该可以看到新的核心文件。文件名与 procdump 命令显示的文件名一致日期、时间、PID 都会附加在文件名上 $ ls -l progxyz_time_2020-06-24_03\:30\:00.350498 -rw-r--r--. 1 root root 356848 Jun 24 03:30 progxyz_time_2020-06-24_03:30:00.350498 $ $ file progxyz_time_2020-06-24_03\:30\:00.350498 progxyz_time_2020-06-24_03:30:00.350498: ELF 64-bit LSB core file, x86-64, version 1 (SYSV), SVR4-style, from ./progxyz, real uid: 0, effective uid: 0, real gid: 0, effective gid: 0, execfn: ./progxyz, platform: x86_64 $用 GNU 项目调试器分析核心文件 要查看是否可以读取该转储文件调用 GNU 项目调试器gdb。记得提供测试二进制文件的路径这样你就可以看到堆栈上所有的函数名。在这里bt回溯表明当转储被采集时sleep() 函数正在执行 $ gdb -q ./progxyz ./progxyz_time_2020-06-24_03\:30\:00.350498 Reading symbols from ./progxyz...(no debugging symbols found)...done. [New LWP 350498] Core was generated by ./progxyz. #0 0x00007fb6947e9208 in nanosleep () from /lib64/libc.so.6 Missing separate debuginfos, use: yum debuginfo-install glibc-2.28-101.el8.x86_64 (gdb) bt #0 0x00007fb6947e9208 in nanosleep () from /lib64/libc.so.6 #1 0x00007fb6947e913e in sleep () from /lib64/libc.so.6 #2 0x00000000004005f3 in main () (gdb)gcore 怎么样 Linux 用户会很快指出Linux 已经有一个叫 gcore 的命令大多数 Linux 发行版都有这个命令它的作用和 ProcDump 完全一样。你说的对。如果你从来没有使用过它可以尝试用 gcore 来转储一个进程的核心。再次运行测试程序然后运行 gcore并提供 PID 作为参数 $ ./progxyz [1] 350664 $ $ pgrep progxyz 350664 $ $ gcore 350664 0x00007fefd3be2208 in nanosleep () from /lib64/libc.so.6 Saved corefile core.350664 [Inferior 1 (process 350664) detached] $gcore 打印一条消息说它已将核心文件保存到一个特定的文件中。检查当前目录找到这个核心文件然后再次使用 gdb 加载它 $ $ ls -l core.350664 -rw-r--r--. 1 root root 356848 Jun 24 03:34 core.350664 $ $ file core.350664 core.350664: ELF 64-bit LSB core file, x86-64, version 1 (SYSV), SVR4-style, from ./progxyz, real uid: 0, effective uid: 0, real gid: 0, effective gid: 0, execfn: ./progxyz, platform: x86_64 $ $ gdb -q ./progxyz ./core.350664 Reading symbols from ./progxyz...(no debugging symbols found)...done. [New LWP 350664] Core was generated by ./progxyz. #0 0x00007fefd3be2208 in nanosleep () from /lib64/libc.so.6 Missing separate debuginfos, use: yum debuginfo-install glibc-2.28-101.el8.x86_64 (gdb) bt #0 0x00007fefd3be2208 in nanosleep () from /lib64/libc.so.6 #1 0x00007fefd3be213e in sleep () from /lib64/libc.so.6 #2 0x00000000004005f3 in main () (gdb) q $为了使 gcore 可以工作你需要确保以下设置到位。首先确保为核心文件设置了 ulimit如果设置为 0核心文件将不会被生成。第二确保 /proc/sys/kernel/core_pattern 有正确的设置来指定核心模式 $ ulimit -c unlimited $你应该使用 ProcDump 还是 gcore 有几种情况下你可能更喜欢使用 ProcDump 而不是 gcoreProcDump 有一些内置的功能在一些情况下可能很有用。 等待测试二进制文件的执行 无论是使用 ProcDump 还是 gcore测试进程必须被执行并处于运行状态这样才能提供一个 PID 来生成核心文件。但 ProcDump 有一个功能就是等待特定的二进制文件运行一旦发现运行的测试二进制文件与给定的名称相匹配它就会为该测试二进制文件生成一个核心文件。它可以使用 -w 参数和程序名称而不是 PID 来启用。这个功能在测试程序快速退出的情况下很有用。 下面是它的工作原理。在这个例子中没有名为 progxyz 的进程在运行 $ pgrep progxyz $用 -w 参数调用 procdump让它保持等待。在另一个终端调用测试二进制 progxyz $ procdump -w progxyz ProcDump v1.1.1 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process exceeds the specified criteria. Process: progxyz (pending) CPU Threshold: n/a Commit Threshold: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Press Ctrl-C to end monitoring without terminating the process. [03:39:23 - INFO]: Waiting for process progxyz to launch...然后从另一个终端调用测试二进制 progxyz $ ./progxyz [1] 350951 $ProcDump 立即检测到该二进制正在运行并转储这个二进制的核心文件 [03:39:23 - INFO]: Waiting for process progxyz to launch... [03:43:22 - INFO]: Found process with PID 350951 [03:43:22 - INFO]: Timed: [03:43:23 - INFO]: Core dump 0 generated: progxyz_time_2020-06-24_03:43:22.350951 $ $ ls -l progxyz_time_2020-06-24_03\:43\:22.350951 -rw-r--r--. 1 root root 356848 Jun 24 03:43 progxyz_time_2020-06-24_03:43:22.350951 $ $ file progxyz_time_2020-06-24_03\:43\:22.350951 progxyz_time_2020-06-24_03:43:22.350951: ELF 64-bit LSB core file, x86-64, version 1 (SYSV), SVR4-style, from ./progxyz, real uid: 0, effective uid: 0, real gid: 0, effective gid: 0, execfn: ./progxyz, platform: x86_64 $多个核心转储 另一个重要的 ProcDump 功能是你可以通过使用命令行参数 -n count 指定要生成多少个核心文件。核心转储之间的默认时间间隔是 10 秒但你可以使用 -s sec 参数修改。这个例子使用 ProcDump 对测试二进制文件进行了三次核心转储 $ ./progxyz [1] 351014 $ $ procdump -n 3 -p 351014 ProcDump v1.1.1 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process exceeds the specified criteria. Process: progxyz (351014) CPU Threshold: n/a Commit Threshold: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 3 Press Ctrl-C to end monitoring without terminating the process. [03:45:20 - INFO]: Timed: [03:45:21 - INFO]: Core dump 0 generated: progxyz_time_2020-06-24_03:45:20.351014 [03:45:31 - INFO]: Timed: [03:45:32 - INFO]: Core dump 1 generated: progxyz_time_2020-06-24_03:45:31.351014 [03:45:42 - INFO]: Timed: [03:45:44 - INFO]: Core dump 2 generated: progxyz_time_2020-06-24_03:45:42.351014 $ $ ls -l progxyz_time_2020-06-24_03\:45\:* -rw-r--r--. 1 root root 356848 Jun 24 03:45 progxyz_time_2020-06-24_03:45:20.351014 -rw-r--r--. 1 root root 356848 Jun 24 03:45 progxyz_time_2020-06-24_03:45:31.351014 -rw-r--r--. 1 root root 356848 Jun 24 03:45 progxyz_time_2020-06-24_03:45:42.351014 $基于 CPU 和内存使用情况的核心转储 ProcDump 还可以让你在测试二进制或进程达到一定的 CPU 或内存阈值时触发核心转储。ProcDump 的手册页显示了调用 ProcDump 时使用的命令行参数 -C当 CPU 超过或等于指定值时触发核心转储生成0 到 100 * nCPU。 -c当 CPU 小于指定值时触发核心转储生成0 到 100 * nCPU。 -M当内存提交超过或等于指定值MB时触发核心转储生成。 -m当内存提交小于指定值MB时触发核心转储生成。 -T当线程数超过或等于指定值时触发。 -F当文件描述符数量超过或等于指定值时触发。 -I轮询频率单位为毫秒默认为 1000。 例如当给定 PID 的 CPU 使用率超过 70% 时可以要求 ProcDump 转储核心 procdump -C 70 -n 3 -p 351014结论 ProcDump 是一长串被移植到 Linux 的 Windows 程序中的一个有趣的补充。它不仅为 Linux 用户提供了额外的工具选择而且可以让 Windows 用户在 Linux 上工作时更有熟悉的感觉。 via: 作者Gaurav Kamathe 选题lujun9972 译者wxy 校对wxy 本文由 LCTT 原创编译Linux中国 荣誉推出 | 2020-08-20 09:57 使用 Process Dump 将恶意软件 PE 文件从内存导出至磁盘 Alpha_h4ck 2021-09-27 08:27:43 关于 Process-Dump Process Dump 是一款 Windows 逆向工程分析工具该工具基于命令行接口实现可以帮助广大研究人员从内存中将恶意软件 PE 文件导出至磁盘并进行分析。一般来说在执行恶意软件文件之前攻击者都会对其进行打包和模糊处理以避免 AV 扫描。但是在执行这些文件时它们通常会在内存中解包或注入反混淆版本的恶意软件代码。恶意软件研究人员在分析恶意软件时的一项常见任务是将这些未打包的代码从内存转储回磁盘以便使用 AV 产品进行扫描或使用 IDA 等静态分析工具进行分析。 进程转储适用于 Windows 32 和 64 位操作系统可以从特定进程或当前运行的所有进程转储内存组件。Process Dump 支持创建和使用良性文件哈希数据库因此可以跳过所有的良性文件。 功能介绍 从特定进程或所有进程转储代码查找并转储进程中未正确加载的隐藏模块查找和转储松散代码块即使它们不与 PE 文件关联重构转储信息可以在关闭转储监视器模式‘-closemon’下运行在该模式下进程将在终止前暂停并转储支持多线程因此当你在转储所有正在运行的进程时它的运行速度将非常快可以生成一个良性文件哈希数据库在计算机感染恶意软件之前生成此文件以便在进程转储时仅转储新的恶意软件组件。 工具安装 可以直接点击【这里】下载最新版本的 Process-Dump 预编译发布版本下载地址如下 http://www.split-code.com/files/pd_v2_1.zip在使用该工具之前我们还需要安装 “Microsoft Visual C Redistributable for Visual Studio 2015”下载地址如下 https://www.microsoft.com/en-ca/download/details.aspx?id48145编译源代码 该工具适用于 Visual Studio 2019 的免费社区版本我们可以使用下列命令将该项目源码克隆至本地并在 VS2019 中打开项目然后进行项目编译 git clone https://github.com/glmcdona/Process-Dump.git工具使用样例 从系统上的所有进程转储所有模块和隐藏代码块忽略已知的良性模块 pd64.exe -system在终端监视器模式下运行直到按下 Ctrl C 键之前进程转储将在终止之前转储任何进程 pd64.exe -closemon从特定进程标识符转储所有模块和隐藏代码块 pd64.exe -pid 0x18A按进程名称转储所有模块和隐藏代码块 pd64.exe -p .*chrome.*构建良性文件哈希数据库用于排除使用上述命令转储模块中的良性代码 pd64.exe -db gen沙箱使用样例 如果你正在运行一个自动化沙箱或手动反恶意软件研究环境我建议广大研究人员以下列方式运行 Process-Dump所有的命令都需要以管理员权限运行 首先打开你的干净环境并构建良性文件哈希数据库。然后运行下列命令 pd64.exe -db genpd64 -db genquick启动 Process-Dump 终端监控器此时该工具将在后台转储恶意软件所使用的全部中间进程信息 pd64.exe -closemon现在运行恶意软件文件并观察恶意软件安装行为。当你准备从内存转储正在运行的恶意软件信息时可直接运行下列命令 pd64.exe -system所有转储的组件都将存储至 pd64.exe 所在的工作目录中我们可以使用 “-o” 参数修改输出文件路径。 项目地址 Process-Dump【GitHub 传送门】 参考资料 https://www.split-code.com/processdump.html via: 如何使用 Process Dump 将恶意软件 PE 文件从内存导出至磁盘 - FreeBuf 网络安全行业门户 https://www.freebuf.com/articles/system/290059.html
http://www.dnsts.com.cn/news/3565.html

相关文章:

  • 网站重购全球速卖通中文版
  • 电商网站开发python软件公司网站模板
  • 网站建设得花多少钱黑色网站模板
  • 无锡网站优化排名推广网站建设课后心得
  • 秦皇岛网站制作专家做网站简单吗
  • 网络促销策略seo网站快速排名
  • 关键词搜索排名怎么查看天津企业网站排名优化
  • 如何做好网络推广工作seo友情链接是什么
  • 图书馆网站建设工作总结高端 网站定制
  • 阿里做网站怎么做wordpress 改 分隔
  • 鞋子 东莞网站建设网站如何做的看起来高大上
  • 网站调用数据库app软件怎么开发
  • 设计师网站大全品牌推广营销
  • 网站建设哪些公司好网页制作的公司哪家好
  • 男女做暧视频网站免费Wordpress打开速度优化插件
  • 做问卷用哪个网站镇江网络
  • 章丘区当地网站建设哪家好阿里企业邮箱下载
  • 网站三个月没排名网络运营专员主要做什么工作
  • 建设银行网站打不开做电子商务网站注册哪一类商标
  • 甘肃农产品网站建设怎么做一个网站 免费
  • 过年做啥网站致富备案需要写网站建设方案书
  • 网站建设的新发展简单大气的成品网站
  • 网站后台发文章图片链接怎么做google谷歌搜索引擎入口
  • 建设小学瓯江小区网站濮阳市建设局网站
  • 昆明网站网站建设游戏平台搭建
  • 天空在线网站建设制作网页时采用的最基本的语言是
  • 网站代运营收费门户网站建设建议
  • 上海网站建设 美橙化妆品网站建设原因
  • 做网站会员推广哪个好固安做网站
  • 印刷报价网站源码遵化建行网站