转,看雪CM,有点难度
本帖最后由 CHHSun 于 2009-7-21 13:14 编辑好变态,不知如何下断。 断点并不难
crackme:
返回地址: 0040A138函数名称: GetWindowTextW(USER32.dll)
GetWindowTextW: 取得一个窗体的标题文字,或者一个控件的内容
hWnd=0x000601B2
lpBuffer=0x01008358
nBufferSize=0x00000009
存入缓冲区中的数据: "ccbszhxd"
GetWindowTextW返回值: 0x00000008
返回地址: 0040A120函数名称: GetWindowTextLengthW(USER32.dll)
GetWindowTextLengthW: 调查窗口标题文字或控件内容的长短
hWnd=0x000801B0
GetWindowTextLengthW返回值: 0x0000000A
返回地址: 0040A138函数名称: GetWindowTextW(USER32.dll)
GetWindowTextW: 取得一个窗体的标题文字,或者一个控件的内容
hWnd=0x000801B0
lpBuffer=0x01008388
nBufferSize=0x0000000B
存入缓冲区中的数据: "7979797979"
GetWindowTextW返回值: 0x0000000A
GDITest (错误提示太不友好)
返回地址: 004075A3函数名称: GetDlgItemInt(USER32.dll)
GetDlgItemInt: 取得指定控件中的数值
hDlg=0x000B0246
nIDDlgItem=0x000003E8
lpTranslated=0x00000000
bSigned=0x00000001
GetDlgItemInt返回值: 0x04C19EDB(取得指定控件中的数值) 学习了,明天弄开看看。对函数还是不了解。 晕 不知道是什么壳壳斗脱不掉
谁能指点一下啊 先交一份作业,另外一个暂时还无思路~
幸得ZZ指教,第二个也告破~ 小生,弄个破文吧,这两个程序没头须 小生 整一个 破解过程 莪还是没有头绪 来看看,学习下啊! 下bp GetDlgItemInt转换函数断点 返回到 00401480
=========================
00401480 .56 push esi
00401481 .6A 01 push 1
00401483 .6A 00 push 0
00401485 .68 E8030000 push 3E8
0040148A .8BF1 mov esi,ecx
0040148C .E8 F7600000 call GDITest.00407588 ;获取注册码的16进制数
00401491 .83F8 4D cmp eax,4D ;与4D比较-----十进制的'77'
00401494 .6A 06 push 6
00401496 .B9 8C564400 mov ecx,GDITest.0044568C
0040149B .74 07 je short GDITest.004014A4 ;关键跳
0040149D .68 A88A4300 push GDITest.00438AA8 ;这个地方污言秽语
004014A2 .EB 05 jmp short GDITest.004014A9
004014A4 >68 B88A4300 push GDITest.00438AB8 ;这里破解了
004014A9 >E8 92050000 call GDITest.00401A40
004014AE .8B46 20 mov eax,dword ptr ds: ;下面是闪动计时
004014B1 6A 00 push 0
004014B3 .6A 32 push 32 ; |Timeout = 50. ms
004014B5 .6A 00 push 0 ; |TimerID = 0
004014B7 .50 push eax ; |hWnd
004014B8 .FF15 E4344300 call dword ptr ds:[<&USER32.SetTimer>] ; \SetTimer
004014BE .5E pop esi
页:
[1]