首页
社区
课程
招聘
[求助]关于加密与解密(第二版)第4章中traceme例子中的问题
发表于: 2006-12-27 20:47 4360

[求助]关于加密与解密(第二版)第4章中traceme例子中的问题

2006-12-27 20:47
4360
我是个新手,请教大家一个问题。最近看了《加密与解密》(第二版)第4章中关于softice的使用方法的内容,书中用traceme作为例子;按书中的方法,对traceme进行调试,操作如下:1、在windows xp professional sp1系统上安装了SoftICEDriverSuite_2.7.Retail;2、启动softice,并将GetDlgItemText函数(traceme的源代码中使用的就是该函数)设置为断点,运行后,结果断点抓不到;3、我又将GetWindowText(traceme的源代码中没有使用该函数)作为断点,运行后,softice显示该断点被抓获。这让我十分的费解,请哪位高手赐教,十分感谢!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 44190
活跃值: (20055)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
你是说GetWindowText与GetWindowTextA吧?原因见:

Q:为何同一函数有几种形式,如MessageBoxA(W)?
A:MessageBoxA(W)是MessageBoxA,MessageBoxW两种形式缩写,Windows函数是区分字符集的:A表示ANSI,W表示Wide,即Unicode (Wide character-set),前者就是通常使用的单字节方式,而后者是双字节方式,方便处理双字节字符。Win98基本是使用ANSI字符串来进行内部操作的,但它仍可处理少数Unicode字串符函数,如MessageBoxW、MessageBoxExW等。而Win2000/XP所有核心函数都是Unicode字串符。



另外,你可以用Ollydbg来代替SoftICE,具体见:
http://bbs.pediy.com/showthread.php?s=&threadid=31840
2006-12-27 20:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢您的关注,我的问题不是ansi与unicode函数之间区别的问题。traceme程序的源代码中用的是GetDlgItemText函数,但对这个函数设断点softice却拦截不到,而对GetWindowText函数(而源代码中没有出现对该函数的调用),所以我感到非常的费解。另外,当我对GetWindowText设断点并截获以后,按F12后,控制权便交还给traceme程序,而我认为应该还是在softice中才对,这我也不是很懂!请赐教
2006-12-27 21:14
0
雪    币: 44190
活跃值: (20055)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
你用OllyDBG试试,用GetDlgItemTextA 设断能拦住,另外,GetDlgItemTextA 里也是调用GetWindowTextA实现的:

77D6AC1E USER32.GetDlgItemTextA         8BFF            mov     edi, edi                         ; USER32.GetDlgItemTextA
77D6AC20                                55              push    ebp
77D6AC21                                8BEC            mov     ebp, esp
77D6AC23                                FF75 0C         push    dword ptr [ebp+C]
77D6AC26                                FF75 08         push    dword ptr [ebp+8]
77D6AC29                                E8 E89BFBFF     call    GetDlgItem
77D6AC2E                                85C0            test    eax, eax
77D6AC30                                74 0E           je      short 77D6AC40
77D6AC32                                FF75 14         push    dword ptr [ebp+14]
77D6AC35                                FF75 10         push    dword ptr [ebp+10]
77D6AC38                                50              push    eax
77D6AC39                                E8 FE74FCFF     call    GetWindowTextA
77D6AC3E                                EB 0E           jmp     short 77D6AC4E
77D6AC40                                837D 14 00      cmp     dword ptr [ebp+14], 0
77D6AC44                                74 06           je      short 77D6AC4C
77D6AC46                                8B45 10         mov     eax, dword ptr [ebp+10]
77D6AC49                                C600 00         mov     byte ptr [eax], 0
77D6AC4C                                33C0            xor     eax, eax
77D6AC4E                                5D              pop     ebp
77D6AC4F                                C2 1000         retn    10
2006-12-27 21:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢kanxue,问题已经解决了,应该是我用的这个driversuit2.7有问题,换了一个softice 4.27精简版,就可以了!另外你给我的那个解密基础知识入门帖我也看到了,十分好,谢谢!
2006-12-28 18:07
0
雪    币: 178
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你好,能把softice 4.27精简版发给我吗?
2007-1-10 20:46
0
雪    币: 178
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我的邮箱是lmdetective@tom.com,谢谢了!!
2007-1-10 20:48
0
游客
登录 | 注册 方可回帖
返回
//