聊一聊对一个 C# 商业程序的反反调试

一:背景 1.讲故事 前段时间有位朋友在微信上找到我,说他对一个商业的 C# 程序用 WinDbg 附加不上去,每次附加之后那个 C# 程序就自动退出了,问一下到底是怎么回事?是不是哪里搞错了,有经验的朋友应该知道,其实这是 商业程序 的反调试机制捣鬼的,为了保护程序隐私,一般都不希望他人对自己做逆

[转帖]懒人有懒招:expect

https://www.cnblogs.com/amazingjxq/archive/2010/10/17/1852889.html 公司的开发机不知道怎么回事,无法用key登录ssh来免去输入密码的繁琐。昨天花了很长的时间来研究,也没找到问题所在。sshd_config里面的设置没有什么问题,反反

php反序列化个人笔记

反序列化 什么是反序列化? 格式转换 序列化:对象转换为字符串或者数组等格式 反序列化:将数组或字符串转换成对象 为什么会出现安全漏洞? 魔术方法 如何利用漏洞? 通过构造pop链,找到代码的逻辑漏洞,进行getshell,rce等操作 反序列化利用分为三类 魔术方法的调用逻辑 语言原生类的调用逻辑

CTF反序列化wp(ciscn,nss,ctfshowweb入门)

[CISCN 2023 华北]ez_date 题目:

Resin反序列化链分析

前言 Resin是一个轻量级的、高性能的开源Java应用服务器。它是由Caucho Technology开发的,旨在提供可靠的Web应用程序和服务的运行环境。和Tomcat一样是个服务器,它和hessian在一个group里,所以有一定的联系

python json反序列化为对象

在Python中,将JSON数据反序列化为对象通常意味着将JSON格式的字符串转换为一个Python的数据结构(如列表、字典)或者一个自定义的类实例。虽然Python的标准库json模块不提供直接将JSON数据映射到类的实例的功能,但我们可以通过一些技巧来实现这个需求。 以下是一个详细的示例,展示了

开源一个反sql注入的asp.net core中间件

现在公安有一个专门负责信息安全的部门,前几天公司就收到了一个整改通知,防sql注入的整改。 我们公司开始对网站进行了简单的测试,普通的sql都能检测出来。 但还是被发了整改通知,肯定有些sql注入的方法没测出来,于是我就开始查找了sql注入的手法。 sql注入主要有:基于注释、基于一般错误、基于时间

【Android逆向】反调试绕过

1. 拿到52pojie的反调试挑战apk 链接: https://www.52pojie.cn/thread-742686-1-1.html 的附件中 2. 项目进行安装,点开app,同时挑战成功,不慌 3. 使用IDA attach到目的进程观察,发现app立刻闪退,证明app必然存在反调试逻辑

【Android逆向】反调试绕过(nop 绕过)

1. 这是看雪上的一个题目,要求显示出 it is success https://www.kanxue.com/work-task_read-800648.htm 第三题 2. apk 安装到手机,发现闪退 3. apk拖入到jadx中,观察 public class MainActivity e

【序列化与反序列化】关于序列化与反序列化MessagePack的实践

序列化的目的是将对象变成字节序列,这样一来方便持久化存储到磁盘,避免程序运行结束后对象就从内存里消失,另外字节序列也更便于网络运输和传播

脆弱性-鲁棒性-反脆弱性

哈喽大家好,我是咸鱼 在开始本篇文章之前,我想先问小伙伴们一个问题: 每个人都渴望稳定且有序的生活,但如果一个人的生活过于稳定有秩序且可预测,会有什么不好的影响吗? 如果你每天做同样的事情,都按照同样的方式来度过,一旦出现不可预测的变故,你有应对的策略吗? 在《贝叶斯算法人生》中,我说过这个世界是充

gopher常见坑位

在我看来,golnag有许多反直观的设计,而且这些设计通常不能自圆其说,导致gohper一而再再而三的调入陷阱。 网上也有很多gohper总结了一些笔记,我再提炼精简一下,挂在脑图树上便于记忆。 值类型包括:所有integer、所有float、bool、string、数组和structure 引用类

Jackson--FastJson--XStream--代码执行&&反序列化

Jackson--FastJson--XStream--代码执行&&反序列化 Jackson代码执行 (CVE-2020-8840) 影响范围 2.0.0 <= FasterXML jackson-databind Version <= 2.9.10.2 不受影响版本 FasterXML jacks

4.4 x64dbg 绕过反调试保护机制

在Windows平台下,应用程序为了保护自己不被调试器调试会通过各种方法限制进程调试自身,通常此类反调试技术会限制我们对其进行软件逆向与漏洞分析,我们以第一种`IsDebuggerPresent`反调试为例,该函数用于检查当前程序是否在调试器的环境下运行。函数返回一个布尔值,如果当前程序正在被调试,则返回True,否则返回False。函数通过检查特定的内存地址来判断是否有调试器在运行。具体来说,该

web攻防--PHP反序列化

# web攻防--PHP反序列化 ## 漏洞简介 序列化:把对象转换为字节序列的过程,即把对象转换为可以存储或传输的数据的过程。例如将内存中的对象转换为二进制数据流或文件,在网络传输过程中,可以是字节或是XML等格式。 反序列化:把字节序列恢复为对象的过程,即把可以存储或传输的数据转换为对象的过程。

安全攻防丨反序列化漏洞的实操演练

通过实操演练,深入浅出、快速吃透反序列化漏洞的根本原理。

记一次难忘的json反序列化问题排查经历

前言 最近我在做知识星球中的商品秒杀系统,昨天遇到了一个诡异的json反序列化问题,感觉挺有意思的,现在拿出来跟大家一起分享一下,希望对你会有所帮助。 案发现场 我最近在做知识星球中的商品秒杀系统,写了一个filter,获取用户请求的header中获取JWT的token信息。 然后根据token信息

8.7 父进程检测反调试

首先这是一种比较奇特的反调试思路,通过检测自身父进程来判定是否被调试,原理非常简单,我们的系统在运行程序的时候,绝大多数应用程序都是由`Explorer.exe`这个父进程派生而来的子进程,也就是说如果没有被调试其得到的父进程就是`Explorer.exe`的进程PID,而如果被调试则该进程的父进程PID就会变成调试器的PID值,通过对父进程的检测即可实现检测是否被调试的功能。

8.8 异常处理机制反调试

通常可以通过在程序中设置异常处理函数,并在其中发起一个异常,然后判断程序是否已经被调试器附加来实现反调试。如果异常处理函数没有被触发,则说明程序已经被调试器附加;如果异常处理函数被触发,则说明程序没有被调试器附加。安装异常处理函数并手动触发,此时如果被调试器附加,则会不走异常处理流程,此时`IsDebug`将会返回默认的`False`,并直接走`_asm call pBuff;`在调试器不忽略`i

8.9 RDTSC时钟检测反调试

RDTSC时钟检测同样可实现反调试检测,使用时钟检测方法是利用`rdtsc`汇编指令,它返回至系统重新启动以来的时钟数,并且将其作为一个64位的值存入`EDX:EAX`寄存器中,通过运行两次`rdstc`指令,然后计算出他们之间的差值,即可判定对方是否在调试我们的程序。