masm64
7天前在线
全职 · 1000/日  ·  21750/月
工作时间: 工作日9:00-5:00、周末12:00-24:00工作地点: 远程
服务企业: 3家累计提交: 0工时
联系方式:
********
********
********
聊一聊

使用APP扫码聊一聊

个人介绍

80后,男,精通汇编语言,可以用汇编语言编写程序,包括应用层和内核层,喜欢软件调试,vmp壳代码分析。曾用汇编语言写过 32位 和64位系统下的驱动程序(一款类似网吧还原精灵的磁盘类过滤驱动)逆向过64位NTDLL里的SEH工作原理,以及64位系统内核INT1中断流程。希望通过程序员客栈结交更多的朋友,提供更好的服务

工作经历 和TA聊聊

APP扫码和程序员直接沟通

  • 该用户选择隐藏工作经历信息,如需查看详细信息,可点击右上角“和TA聊一聊”查看

教育经历 和TA聊聊

APP扫码和程序员直接沟通

  • 该用户选择隐藏教育经历信息,如需查看详细信息,可点击右上角“和TA聊一聊”查看

技能

软件调试
加密解密
0
1
2
3
4
5
0
1
2
3
4
5
作品
NTDLL 异常处理在调试中的应用

顾名思义我们今天讨论的是应用层软件的调试,且是64位的软件,当一个软件发生错误或者异常时(不管是无意的还是刻意的)首先这个错误信息会先在内核中处理,如果是驱动程序产生的异常或者错误,能处理就处理不能处理就直接蓝屏,如果是应用程序的话,在内核中分配一些诸如ExceptionRecord、ContextRecord的结构体后就返回到用户层面继续处理了。 内核函数 KiExceptionDispatch在检测到异常或错误来自用户空间时,就会调用用户层的KiUserExceptionDispatcher,这个函数是用户层面的异常错误总入口,位于NTDLL.DLL中,我们编写软件时用到的SEH异常处理,都是由这个函数来实现的 我们看下它的导出函数KiUserExceptionDispatcher,其中RtlDispatchException就是核心的异常处理过程,RtlGuardRestoreContext 函数是调用我们提供给SEH的安全返回地址。 现在市面上的商业软件不管32位还是64位,都有防跟踪、防逆向的指令在保护自身代码,很多调试器也有相应的插件提供过保护,32位系统下,基本上OD可以过所有保护。但64位系统下就不行了,其中win64对内核有更加严格的保护,不像32位下你可以随时接管中断接口、异常接口、SSDT 等,64位系统下你这样做分分钟蓝屏,PatchGuard了解一下。 基于这个原因,其实我们可以从ntdll的RtlDispatchException函数入手,我们挂钩RtlDispatchException,接管用户层面的所有异常,然后过滤出我们感兴趣的程序即可。 我们增加一个新的节区(fix)调整节区属性为可读、可写、可执行、可共享(应用程序加载NTDLL时不会为这个节区额外分配空间,直接映射我们分配的空间) 手动修改call的跳转地址。然后自己编写过滤代码,将编好的代码用ue写入我们新建的节区就可以了。假如我们要跟踪一个license 授权文件的解密流程,那就需要挂钩ZwCreateFile函数,获取到文件句柄后,挂钩ZwReadFile函数。方法和RtlDispatchException一样,直接把指令call到我们提前定义的空间地址上。整个过程就是在真实的环境中运行,软件自身的反调试功能统统失效,因为我们就没用市面上的任何调试器,我们直接通过和NTDLL的自定义节区(fix)交换数据来获取调试数据。 很多软件喜欢用VMP来加壳,我们就针对VMP来简单说下调试过程吧。VMP壳软件在启动过程中自身会调用一些函数来检测电脑的运行环境,如果电脑处在调试模式,或者检测到调试端口、事件之类,就会异常退出,我们没用调试器所以就不用关心这些事情,唯一要做的是VMP对自陷指令的处理,比如:int1 、int 3。我们不是接管了RtlDispatchException嘛,所以VMP 产生的异常指令,都会被我们过滤到,把这些过滤到的异常指令全部保存下来,将来在动态跟踪时,遇到这些指令就放行。 pushfq or byte ptr [rsp+1],1 ;单步 popfq 持续产生int1 中断,就可以把整个代码流程给抓取出来。用正确的授权走一遍,再用错误的走一遍,比对一下不同点很快就可以找到关键 jz jnz 指令点。

0
2024-01-08 16:01
64位汇编代码实现https连接

越来越多的网站开始使用HTTPS协议,虽然这样会增加服务器的负担,但是从保护用户信息的安全层面来讲是很有必要的。安全套接口是基于SHA 256 、RSA算法为基础的双向认证的证书保护接口。下面我简单谈论下以windows原生API为基础的,基于tcp套接口的HTTPS通信。微软在应用层提供了安全支持提供程序(Security Support Providers)共有11种之多其中的Microsoft Unified Security Protocol Provider 就是我们要着重介绍的https通道协议 (用 Default TLS SSP也可以)

0
2023-05-24 17:33
64位汇编语言之RSA加密算法

RSA算法广泛应用于计算机行业,应用软件使用数字签名防止软件被篡改。windows驱动程序必需要数字签名才能正常运行。商业软件使用RSA算法来保护软件的有效使用权限。

0
2023-05-24 17:27

2 人评论
用户评价

用户960119
proginn1544223089
辛苦开发人员了,整体项目完成很棒,后期还有维护服务,都承诺完成,挺好的!
用户441865
wls5254
好评
更新于: 2021-09-19 浏览: 473