易语言吧

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 569|回复: 0

[技术文章] 第一课 简单的实现一个反调试

[复制链接]

6

主题

41

帖子

2285

积分

VIP超级贵宾

Rank: 8Rank: 8

积分
2285
威望
0
易币
2244
贡献
0
积分
2285
UID
40804
在线时间
23 小时
注册时间
2024-1-18
发表于 2025-2-4 14:16:30 | 显示全部楼层 |阅读模式
欢迎大家观看我的反调试课程
本人也是一个小白,希望大家多多支持,我们一起进步
课程如果有讲的不对的地方可以在评论区发送,感谢大家的支持[抱拳]


现在开始我们的第一课,简单的实现一个反调试

用到的API是isDebuggerPresent
易语言源码如下
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
返回值逻辑型  
isDebug整数型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
返回值 = IsDebuggerPresent ()
判断 (返回值 = )
信息框 (“正在被调试”, 0, , )


  1. BOOL IsDebuggerPresent(void);
复制代码
这是C++中的函数原型
这是一个最简单的反调试API,希望大家能够记住
当然了,这个函数的汇编写法长这个样子
  1. 等效的汇编代码为
  2. mov eax,fs:[0x30]
  3. mov eax,[eax+0x68]
  4. mov 变量,eax
复制代码
这个变量是你接收的返回值,也就是上述e代码的isDebug这个变量
我们用汇编的形式在易语言中表达一下
  
' __asm{
' mov eax,fs:[0x30]
' mov eax,[eax+0x68]
' mov isDebug,eax
' }
' 这里的isDebug的值应该是十六进制的70,我们改成十进制112
判断 (isDebug = 112)
信息框 (“正在被调试”, 0, , )


当然我们在实际情况中,直接这么写是不对的,应该起一条线程不断的检测

这节课主要是简单的了解一下,整套课程面向易语言小白和想了解反调试攻防的萌新罢了
肯定已经有很多人都知道这种反调试方法了吧哈哈哈

懒得打字嘛,点击右侧快捷回复 【选择右侧内容,快速回复】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大漠插件注册码无须等1-3号

QQ|一:站内所有资源均来自互联网收集或用户上传分享,本站不拥有此类资源的版权。 作为网络服务提供者,对转载行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权并出示充分的版权证明材料时,易语言吧负有移除转载作品以及停止继续传播的义务。在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任,包括不承担因侵权不成立而给原发布人带来损害的赔偿责任。 用户免费分享产生,如果侵犯了你的权益,联系QQ:3066137757|Archiver|手机版|小黑屋|易语言吧

GMT+8, 2025-4-21 03:20 , Processed in 0.215661 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表