anti_debug (关于对int3 检查)
小菜一直在吾爱上索取,第一次发帖,希望能对一些朋友有帮助,若是大牛可以return使用工具: od, peid等
peid查壳没壳, 看看导入表 貌似这个crackme比较简单的
od走一遍,下断GetDlgItemTextA(401142处)
call 401221 对假吗处理
后面有一个call 401241跟进看看
跟进call401296 为mov al, cc(有反调试,对断点的检查我刚在401142下了断点注意)
继续跟吧跟出401221 ,看这段走完是什么
发现若eax = 0 走向正确的提示,那就跟的这样走吧。
回到前面那个地方
如图:
以上面的分析要使ecx等于0 (mov eax, ecx)
mov edi, 00401120
add edi, 0B (定位到内存中方数据地方)
mov esi, offest 00403284(假码计算后的结果)
mov ecx, 9
dec ecx
lods byte ptr (取esi所指向的空间中取出一个字节,放到al中)
scas byte ptr (edi所指向的字节与相应的al值相减)
je 跳回到dec ecx
呵呵因此就构造与0040112B所指向的相等(8字节长)
mov al, 字节
rol al, 5
xoral, 15
重新输入我算出的结果发现不对,,,,,,nandao,,这条路是骗人的,是int 3在做怪。。。。
重头再来,注意想到会对断点的检查
继续对GetDlgItemTextA下断(401142地址)
进入401241仔细分析
lea edi, [<ModuleEntryPoint>] (401000)
mov ecx, 297(检查字节个数)
call 00401296 (mov al, cc)
repne scas byte ptr 扫描edi指向的字节,是否等于CC,
运行该句,发现ecx = 154
说明从401000开始,第142处为CC
刚才我在401142下断了,,,会产生CC.....
同理后面是对一系列的函数是否下断检查
若检查到有断点会返回。没有断点时403240中的值+1
所以为了避免程序检测到断点,而又能让我们的程序断下来,,,那么在检查前找个地方断下来
我找的 40109E
程序断下来后将断点删除,,,,,,,终于上路了,,,,
跟踪发现会有四处调用了call 00401241 对断点的检查,,那么403240值最终会变成4
到,, call 401201 对假码运算处理
mov al, zijie
xor al, 41
rolal, 3
mov zijie, al
地址401198处
moveax, 5
mul byte ptr (eax*4)定位到正真密码处理后的结果
mov esi, offset 00403268(假码处理位置)
mov edi, 00401175
add edi, eax 定位到正真密码位置
mov ecx, 9
dec ecx
lods byte ptr
scas byte ptr
je 跳到dex ecx
or ecx, ecx
jz 004011E1 当假码处理后的结果与edi指向的结果依依相等时,使ecx = 0,,,跳转到正确框
哈哈搞定了。。。。
edi 内存中的正确数据:91 71 39A9 41 11 21 03
所以把这个数据逆推就搞定了。。。。。
__asm
{
xoreax, eax
moval,zhengquezijie
ror al,3
xor al, 0x41
movjieguo, al
}
按照这个结果为softice!
总结:对int 3,断点的检查,关键汇编
lea edi, [<ModuleEntryPoint>] (401000)
mov ecx, 297(检查字节个数)
call 00401296 (mov al, cc)
repne scas byte ptr 扫描edi指向的字节,是否是al = CC,
los指令 从ds:si所指向想的空间中取出一个字节放入al中
scas 从 es:di 所指向字节,与相应的al想减,,所得到的差来设置有关标志位。。。。。。 膜拜~!{:17_1075:} 建议楼主重新排版,这排版看得实属蛋疼. {:1_924:}卤煮,已然成为大牛,膜拜一下。
欢迎继续分析分享好文章,排版可以稍微整齐点
加精鼓励,吾爱有你更精彩。 最好有 anti 的实现算法 好利害的呀,学习了 OD这把大刀舞得好没有软件破不掉啊!膜拜! 楼主英明!楼至威武!楼主是大牛!向楼主学习!
混小子 发表于 2013-4-23 17:53 static/image/common/back.gif
最好有 anti 的实现算法
http://www.52pojie.cn/thread-193736-1-1.html