#

Delphi程序逆向反汇编技巧小记

0x00 Delphi语言基础

1.Delphi语言概述

Delphi本身并非一种独立的语言,而是一种软件开发工具,是Object Pascal语言的一种开发工具。本身是大名鼎鼎的Borland公司开发的一种开发环境,包含IDE、图形界面库Visual Component Library(VCL)及数据库相关功能。其图像界面库VCL类似MFC,使用PME(Property/Method/Event)的开发模式。

Windows平台下一个崩溃而导致的死锁分析

0x00 问题介绍

测试反馈测试过程中发现程序进程存在但是界面没加载出来,看现场很快发现是因为版本不匹配而导致程序崩溃,在写dmp的过程中死锁而导致进程卡死,由于程序是卡死而非退出守护进程也未重启程序,最终导致界面一直没加载出来。
现象就如上面所说,但是为什么写dmp为什么会导致程序死锁呢?

Windows客户端如何透明使用DNS-over-HTTPS

0x00 现有Windows客户端程序dns查询流程

  • 1.client通过系统api(gethostbyname/getaddrinfo/getaddrinfoex)发起查询dns请求
  • 2.系统api会通过rpc查询本地服务dnscache是否有该host的缓存,如果缓存存在则直接返回返回host对应的ip地址,dns查询完成,如果没有则进入下一步
  • 3.如果不存在该host的缓存,则首先会通过解析本地hosts文件看是否有该host对应的ip,如果存在,则直接返回该ip,否则进入下一步
  • 4.如果本地hosts文件中没有该host的记录,则系统会通过发送dns udp包向本地dns服务器发起请求查询该host对应的ip,后面的dns查询过程如下图所示。

西安周末游

说好的一人一篇游记,3年了,妹子的这篇游记终于出炉了
自打成都到西安通高铁,周围无数同事到西安打卡,我也是心心念念好久,一直没有机会,趁这次中级会计考完,特想放松放松。周一开会时坐旁边的同事去过西安,心血来潮,跟小哥哥商量去西安可好,小哥哥痛快答应,于是开启了这次断腿的旅程。




Windows内核重拾:DebugObject

0x00 什么是DebugObject

在Windows系统中对调试的支持主要在三个模块中,分别为内核执行体(多核处理器一般为ntkrnlmp.exe,以Dbgk为前缀,主要负责注册和监听调试事件、管理调试对象等)、原生系统库ntdll.dll(DbgUi为前缀,负责将底层的调试对象封装起来)、子系统dll(kernelbase.dll)。而调试对象(DebugObject)是一个结构体,支持用户模式调试,由一系列的标志(决定对象的状态)、一个事件、一个调试事件双链表组成。

IDA Pro ClassInformer使用指南(翻译)

0x00 介绍

本文主要针对几乎没有使用IDA Pro经验及逆向水平一般的人。IDA对初学者还是有一定的门槛的,主要是由于IMO没有详细介绍IDA使用环境设置和插件使用的指南。我的目标是展示当我在客户端(这里应该是开发外挂)开发遇到困难的时候,我是如何解决这个问题的方法和策略。在本指南中我将演示如何从SDK中的一个字符串识别出二进制文件中反汇编代码中的函数。目标是将IDA中原始的汇编代码转换为ClientMode::CreateMove函数。