一位名为Arkantos的作者,在Crackmes.cf(Crackme.de的镜像站点)站点上提交了一个Crackme,难度级别为1-very_easy_for_newbies。这种入门级别的Crackme其实不足以写博客,只是它的逆向过程正好可以用Process Monitor来完成,写这篇文章就当做Process Monitor的一个实例吧。

作者信誓旦旦的说该crackmes没有加壳,然而,拖进IDA后发现带了UPX壳,于是用DIE查壳确认一下,果然带了UPX壳!作者真是明目张胆的...我们来看下脱壳后怎么分析这个Crackme。

把脱壳后的crackmes拖进IDA,映入眼帘的就是start函数中调用了若干文件操作的API:

这个级别的CM,遇到文件操作,很可能是在tmp目录下生成并运行bat文件,最终序列号的验证也由bat文件完成。既然这样,只要观察CM的行为,应该能获得bat文件,于是,我运行ProcMon并设置如下过滤器,然后开始监视CM的运行过程:

这个级别的CM少有网络/注册表操作所以,在ProcMon窗口中把这两个监测项反选以减少输出:

我猜测这个CM会生成bat文件,所以,在文件操作中更应该关注程序调用CreateFile的行为,因此在Operation中选中一个事件,右键,在弹出的菜单中选择保留CreateFile而过滤其他文件操作:

哼哼,输出窗口顿时清爽了很多!浏览输出,大多数是为了加载必要的系统dll做的文件打开操作,唯独有一项特别刺眼,在%TMP%目录下生成了名为b2e.exe的文件!嗯,在Path列下,选中b2e.exe事件所在行,右键菜单----"jump to"定位到b2e.exe所在的路径,准备分析该文件。

难道这个CM是通过exe来验证序列号?不过,既然我都在监测程序的行为了,那就顺带把这个新生成的程序的行为一起监测了。重新设置过滤器,然后运行b2e.exe,仍然检测程序的CreateFile行为,得到下列输出:

果然,真的在%TMP%目录下创建bat文件,再次右键菜单--"jump to",定位到该bat文件:

查看bat的内容,的确和屏幕上的输出一致

@echo off
echo off
color 4
title Crackme2.exe
cls
:Main3
set a=e@s\/
set b=h@rd
set c=57f8s+-
set d=1a2f5-+
set e=oneld-561-fc
set as=12as5789w
set ad=123fa4v5bw
set aj=51236fs4578951235
set ja=1as23fa4
set na=6n6o8t4h4i6n4g
cls
ECHO        ...............................................
ECHO            Please enter your username
echo            To crack This Rubbish Enter Five Serials..
ECHO             ...............................................
ECHO.
set /p u=Type your username here:
if u==' goto pass
goto pass
:pass:
echo.
echo.
echo.
set /p P=Type your First password here:
if %P%==%u%%c%%a% goto second
if %p%==%u%%d%%a% goto second
goto no
:second
echo.
echo.
echo.
set /p Q=Type your Serial here:
if %Q%==%p%%e%%b% goto last
if %Q%==%p%%as%%b% goto last
goto no2
echo.
echo.
echo.
:last
echo.
echo.
echo.
set /p R=Type your Reg Code here:
if %R%==%u%%ad%%b% goto four
if %R%==%p%%aj% goto four
if %R%==%p%%ja%%a% goto four
goto NO3
:four
echo.
echo.
echo.
set /p F=Type Fourth Code Here:
if %F%==%b%%a%%na%%p% goto five
if %F%==%u%+-%p%-+%r% goto five
if %F%==%a%%p%%b% goto five
goto no4
:five
echo.
echo.
echo.
set /p T=Type Last password here:
if %T%==%u%%p%%b%%q% goto yes
if %T%==%p%%F%%a%%b% goto yes
goto no4
echo.
echo.
echo.
:yes
echo Hi %u% Congratulation!!! you've beaten my Second crackme
pause
exit
echo.
echo.
echo.
:no
echo         No, wrong Pass Please try again later...
pause
goto main3
:no2
echo        No ,wrong Serial. Try again....
pause
goto main3
:no3
echo        nope, wrong Reg Code. Try again Later...
pause
goto main3
:no4
echo No man!!! It's Wrong???
pause
goto main3

嗯,接下来的工作不难了,我就略过了~

借助Process Monitor(ProcMon.exe)逆向一个CrackMe相关推荐

  1. Linux Ubuntu20.10 安装Process Monitor(Procmon),以及使用方法

    Procmon 源码地址:https://gitee.com/mirrors/procmon-for-linux?_from=gitee_search 安装依赖: sudo apt-get -y in ...

  2. 错误提示 - Procmon.exe - 无法找到入口(InitializeSRWLock)

    在XP上运行 Procmon ,出现错误提示: Procmon.exe - 无法找到入口 无法定位程序输入点 InitializeSRWLock 于动态链接库 KERNEL32.dll 上. Proc ...

  3. Process Monitor中文手册

    1.介绍 2.使用Process Monitor 3.列的选择 4.过滤和高亮 5. 进程树(The Process Tree) 6. 信息概要工具(Trace Summary Tools) 7. 选 ...

  4. 文件翻译002片:Process Monitor帮助文档(Part 2)

    [筛选亮点] Process Monitor提供了一些方式来配置筛选器和高亮显示.         筛选器的包括与排除 您能够在筛选器中指定事件的属性,这样就能够令Process Monitor仅显示 ...

  5. Visual Studio 2013开发 mini-filter driver step by step 获取可执行文件名称 - 实现process monitor的一个功能 (10)

    国庆就要结束了,遗憾一下:) 先看看process monitor的样子 他的功能就是监控哪些应用程序执行了什么操作,比如打开了哪些文件,读取了哪些文件等. 今天在使用一张小学英语光盘的时候,发现安装 ...

  6. windows下强大的系统监视工具Procmon(Process Monitor)

    windows下强大的系统监视工具Procmon(Process Monitor) 官方:https://docs.microsoft.com/en-us/sysinternals/downloads ...

  7. linux monitor 命令,Process Monitor(简称Procmon)发布Linux版,附使用方法

    微软为Process Monitor(简称Procmon)推出了Linux版本,并且以MIT协议开放源代码了.Procmon是一款进程监控工具,为开发者提供了简便有效的方式来跟踪系统调用(syscal ...

  8. process monitor解决网络问题一则

    测试环境:windows10 今天,我的防火墙程序,把windows defender的病毒库更新给屏蔽了,无法更新了.于是,找出process monitor,首先把工具栏最后五个图标(从左往右,注 ...

  9. ETW绕过PoC测试1--关闭你的ProcMon.exe

    Windows 事件跟踪 (ETW) 是一项内置功能,最初设计用于执行软件诊断,如今 ETW 被EDR厂商广泛使用.对 ETW 的攻击会使依赖 ETW 遥测的一整类安全解决方案失效.研究禁用 ETW ...

最新文章

  1. openstack(Queens) neutron-l3-agent 代码解析1(从命令行启动到同步plugin数据)
  2. 云效(原RDC)如何构建一个基于Composer的PHP项目
  3. 商业逻辑12讲之人力资源的逻辑
  4. php 时间选择,PHP-在学说2中的日期之间选择条目
  5. Java多线程学习二十五:阻塞和非阻塞队列的并发安全原理||如何选择适合自己的阻塞队列?
  6. java B2B2C 多租户电子商城系统-SpringCloud动态刷新配置信息
  7. centos是什么系统_解决更换操作系统后的开机问题
  8. 风控建模一、初步认识风控
  9. 归并算法(Java实现)
  10. 手游实时阴影方案之Projector Shadow
  11. 两条平行线之间的距离
  12. 程序员学习资料整理(1)
  13. 动态表情与超链接制作
  14. 使用Power BI时常见的几个问题(持续更新)
  15. Android后台耗电分析及优化
  16. 泛型中的 T、E、K、V,还记得嘛?
  17. JS去除输入文本的所有空格、逗号、换行符等空白字符
  18. 用函数调用编写程序,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s=1+1/(1+2)+...+1/(1+2+3+...+n).)
  19. 交换机crc错误是什么意思_OSN1800设备LDX对接S9706交换机,交换机持续有CRC错误告警...
  20. RHEL-7.4-Server系统安装

热门文章

  1. 武汉科技大学计算机复试机试,2019年武汉科技大学考研复试及录取工作方案
  2. python实现word文档合并 v2.0
  3. 计算机网络ospf实验报告,计算机网络实验报告12_ospf实验
  4. torch.bmm()函数解读
  5. (七)VBS变量、数组使用
  6. 润乾报表数据集中参数和宏的使用方法
  7. 欧姆龙OMRON PLC之HostLink通讯协议(五)- CP1H以太网FINS/TCP通讯实例
  8. 为Exynos4412移植U-Boot-2017.11的步骤(一)——让U-Boot跑起来
  9. web在线编辑word,excel,pdf插件-----WebOffice 文档控件API
  10. 2015年国网计算机考试试题,2015全国计算机等级一级MS Office考试试题(回忆版)