吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9315|回复: 20
收起左侧

[原创] anti_debug (关于对int3 检查)

  [复制链接]
h_one 发表于 2013-4-23 17:27
小菜一直在吾爱上索取,第一次发帖,希望能对一些朋友有帮助,若是大牛可以return
  

   使用工具: od, peid等 KRSR0W%L68K9C78ZH9UU`J0.jpg
   peid查壳没壳, 看看导入表 貌似这个crackme比较简单的

   od走一遍,下断GetDlgItemTextA(401142处)   (2SFC}3BCKH[{~729$WCH50.jpg

   call 401221 对假吗处理       N19Q6@Q2N4EJ_M9D0227%PQ.jpg
    后面有一个call 401241跟进看看
    2JMB8LB6I`2%(O1A851B$CJ.jpg

  跟进call401296 为mov al, cc(有反调试,对断点的检查我刚在401142下了断点注意)
  继续跟吧跟出401221 ,看这段走完是什么

6M@2`(ETSS[)U{DB0MHKQ.jpg
发现若eax = 0 走向正确的提示,那就跟的这样走吧。

回到前面那个地方
如图:
M_KT%X9$$Q$AA%@VIWGH0HR.jpg
以上面的分析要使ecx等于0 (mov eax, ecx)
mov edi, 00401120
add edi, 0B (定位到内存中方数据地方)
mov esi, offest 00403284(假码计算后的结果)
mov ecx, 9
dec ecx
lods byte ptr [esi] (取esi所指向的空间中取出一个字节,放到al中)
scas byte ptr [edi] (edi所指向的字节与相应的al值相减)
je 跳回到dec ecx

呵呵因此就构造与0040112B所指向的相等(8字节长)
mov al, 字节
rol   al, 5
xor  al, 15
重新输入我算出的结果发现不对,,,,,,nandao,,这条路是骗人的,是int 3在做怪。。。。

重头再来,注意想到会对断点的检查
继续对GetDlgItemTextA下断(401142地址)

进入401241仔细分析

lea edi, [<ModuleEntryPoint>] (401000)
mov ecx, 297  (检查字节个数)  
call 00401296 (mov al, cc)
repne scas byte ptr [edi]  扫描edi指向的字节,是否等于CC,
运行该句,发现ecx = 154
说明从401000开始,第142处为CC
刚才我在401142下断了,,,会产生CC  .....


同理后面是对一系列的函数是否下断检查
若检查到有断点  会返回。没有断点时403240中的值+1
所以为了避免程序检测到断点,而又能让我们的程序断下来,,,那么在检查前找个地方断下来
我找的 40109E
程序断下来后将断点删除,,,,,,,终于上路了,,,,
跟踪发现会有四处调用了call 00401241 对断点的检查,,那么403240值最终会变成4

到, 3I9A64B3JBJK4`YL2[G[ZQ6.jpg , call 401201 对假码运算处理 1]N[]Q161NUNDEP}_$DOOP2.jpg


mov al, zijie
xor al, 41
rol  al, 3
mov zijie, al

地址401198处
mov  eax, 5
mul byte ptr [403240]  (eax*4)定位到正真密码处理后的结果
mov esi, offset 00403268  (假码处理位置)
mov edi, 00401175
add edi, eax   定位到正真密码位置
mov ecx, 9
dec ecx
lods byte ptr[esi]
scas byte ptr[edi]
je 跳到dex ecx
or ecx, ecx
jz 004011E1     当假码处理后的结果与edi指向的结果依依相等时,使ecx = 0,,,跳转到正确框



哈哈搞定了。。。。
edi 内存中的正确数据:91 71 39  A9 41 11 21 03
所以把这个数据逆推就搞定了。。。。。
__asm
{
    xor  eax, eax
    mov  al,  zhengquezijie
    ror    al,  3
    xor    al, 0x41
    mov  jieguo, al  
}

按照这个结果为softice!      


总结:  对int 3,断点的检查,关键汇编
lea edi, [<ModuleEntryPoint>] (401000)
mov ecx, 297  (检查字节个数)  
call 00401296 (mov al, cc)
repne scas byte ptr [edi]  扫描edi指向的字节,是否是al = CC,

los指令 从ds:si所指向想的空间中取出一个字节放入al中
scas 从 es:di 所指向字节,与相应的al想减,,所得到的差来设置有关标志位。。。。。。

fan9.zip

5.6 KB, 下载次数: 12, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 2热心值 +2 收起 理由
sunflover + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.
Chief + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
bambooqj 发表于 2013-4-23 17:33
膜拜~!
Rookietp 发表于 2013-4-23 17:43
专卖小七 发表于 2013-4-23 17:47
Chief 发表于 2013-4-23 17:51

欢迎继续分析分享好文章,排版可以稍微整齐点
加精鼓励,吾爱有你更精彩。
混小子 发表于 2013-4-23 17:53
最好有 anti 的实现算法
pojie668 发表于 2013-4-23 17:54
好利害的呀,学习了
niucaidi 发表于 2013-4-23 18:10
OD这把大刀舞得好  没有软件破不掉啊!膜拜!
real金龟子 发表于 2013-4-23 18:58
楼主英明!楼至威武!楼主是大牛!向楼主学习!
JoyChou 发表于 2013-4-23 19:55
混小子 发表于 2013-4-23 17:53
最好有 anti 的实现算法

http://www.52pojie.cn/thread-193736-1-1.html
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-18 03:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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