能力值:
(RANK:350 )
|
-
-
2 楼
1.改成CC,OD打开目标程序,到入口点,敲入INT 3,同时记下原指令
2.恢复,OD加载后,将这个INT 3还原为原指令
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
看雪老大就是好人一个
支持
|
能力值:
(RANK:10 )
|
-
-
4 楼
打开后停在这里,我把第一行改成INT 3。保存后无法运行,为什么?
00428634 > 55 PUSH EBP
00428635 8BEC MOV EBP,ESP
00428637 |. 6A FF PUSH -1
00428639 |. 68 98E74200 PUSH Newddz.0042E798
0042863E |. 68 92874200 PUSH <JMP.&MSVCRT._except_handler3> ; SE 处理程序安装
00428643 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00428649 |. 50 PUSH EAX
0042864A |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00428651 |. 83EC 68 SUB ESP,68
00428654 |. 53 PUSH EBX
00428655 |. 56 PUSH ESI
00428656 |. 57 PUSH EDI
00428657 |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
0042865A |. 33DB XOR EBX,EBX
0042865C |. 895D FC MOV DWORD PTR SS:[EBP-4],EBX
0042865F |. 6A 02 PUSH 2
00428661 |. FF15 4CC44200 CALL DWORD PTR DS:[<&MSVCRT.__set_app_ty>; MSVCRT.__set_app_type
00428667 |. 59 POP ECX
00428668 |. 830D 30114400>OR DWORD PTR DS:[441130],FFFFFFFF
0042866F |. 830D 34114400>OR DWORD PTR DS:[441134],FFFFFFFF
00428676 |. FF15 50C44200 CALL DWORD PTR DS:[<&MSVCRT.__p__fmode>] ; MSVCRT.__p__fmode
0042867C |. 8B0D 1C114400 MOV ECX,DWORD PTR DS:[44111C]
00428682 |. 8908 MOV DWORD PTR DS:[EAX],ECX
00428684 |. FF15 54C44200 CALL DWORD PTR DS:[<&MSVCRT.__p__commode>; MSVCRT.__p__commode
0042868A |. 8B0D 18114400 MOV ECX,DWORD PTR DS:[441118]
00428690 |. 8908 MOV DWORD PTR DS:[EAX],ECX
00428692 |. A1 58C44200 MOV EAX,DWORD PTR DS:[<&MSVCRT._adjust_f>
00428697 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
00428699 |. A3 2C114400 MOV DWORD PTR DS:[44112C],EAX
0042869E |. E8 22010000 CALL Newddz.004287C5
004286A3 |. 391D C0504300 CMP DWORD PTR DS:[4350C0],EBX
004286A9 |. 75 0C JNZ SHORT Newddz.004286B7
004286AB |. 68 C2874200 PUSH Newddz.004287C2
004286B0 |. FF15 5CC44200 CALL DWORD PTR DS:[<&MSVCRT.__setusermat>; MSVCRT.__setusermatherr
004286B6 |. 59 POP ECX
004286B7 |> E8 F4000000 CALL Newddz.004287B0
004286BC |. 68 20304300 PUSH Newddz.00433020
004286C1 |. 68 1C304300 PUSH Newddz.0043301C
004286C6 |. E8 DF000000 CALL <JMP.&MSVCRT._initterm>
004286CB |. A1 14114400 MOV EAX,DWORD PTR DS:[441114]
004286D0 |. 8945 94 MOV DWORD PTR SS:[EBP-6C],EAX
004286D3 |. 8D45 94 LEA EAX,DWORD PTR SS:[EBP-6C]
004286D6 |. 50 PUSH EAX
004286D7 |. FF35 10114400 PUSH DWORD PTR DS:[441110]
004286DD |. 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64]
004286E0 |. 50 PUSH EAX
004286E1 |. 8D45 90 LEA EAX,DWORD PTR SS:[EBP-70]
004286E4 |. 50 PUSH EAX
004286E5 |. 8D45 A0 LEA EAX,DWORD PTR SS:[EBP-60]
004286E8 |. 50 PUSH EAX
004286E9 |. FF15 64C44200 CALL DWORD PTR DS:[<&MSVCRT.__getmainarg>; MSVCRT.__getmainargs
004286EF |. 68 18304300 PUSH Newddz.00433018
004286F4 |. 68 00304300 PUSH Newddz.00433000
004286F9 |. E8 AC000000 CALL <JMP.&MSVCRT._initterm>
004286FE |. 83C4 24 ADD ESP,24
00428701 |. A1 68C44200 MOV EAX,DWORD PTR DS:[<&MSVCRT._acmdln>]
00428706 |. 8B30 MOV ESI,DWORD PTR DS:[EAX]
00428708 |. 8975 8C MOV DWORD PTR SS:[EBP-74],ESI
0042870B |. 803E 22 CMP BYTE PTR DS:[ESI],22
0042870E |. 75 3A JNZ SHORT Newddz.0042874A
00428710 |> 46 /INC ESI
00428711 |. 8975 8C |MOV DWORD PTR SS:[EBP-74],ESI
00428714 |. 8A06 |MOV AL,BYTE PTR DS:[ESI]
00428716 |. 3AC3 |CMP AL,BL
00428718 |. 74 04 |JE SHORT Newddz.0042871E
0042871A |. 3C 22 |CMP AL,22
0042871C |.^ 75 F2 \JNZ SHORT Newddz.00428710
0042871E |> 803E 22 CMP BYTE PTR DS:[ESI],22
00428721 |. 75 04 JNZ SHORT Newddz.00428727
00428723 |> 46 INC ESI
00428724 |. 8975 8C MOV DWORD PTR SS:[EBP-74],ESI
00428727 |> 8A06 MOV AL,BYTE PTR DS:[ESI]
00428729 |. 3AC3 CMP AL,BL
0042872B |. 74 04 JE SHORT Newddz.00428731
0042872D |. 3C 20 CMP AL,20
0042872F |.^ 76 F2 JBE SHORT Newddz.00428723
00428731 |> 895D D0 MOV DWORD PTR SS:[EBP-30],EBX
00428734 |. 8D45 A4 LEA EAX,DWORD PTR SS:[EBP-5C]
00428737 |. 50 PUSH EAX ; /pStartupinfo
00428738 |. FF15 98C04200 CALL DWORD PTR DS:[<&KERNEL32.GetStartup>; \GetStartupInfoA
0042873E |. F645 D0 01 TEST BYTE PTR SS:[EBP-30],1
00428742 |. 74 11 JE SHORT Newddz.00428755
00428744 |. 0FB745 D4 MOVZX EAX,WORD PTR SS:[EBP-2C]
00428748 |. EB 0E JMP SHORT Newddz.00428758
0042874A |> 803E 20 /CMP BYTE PTR DS:[ESI],20
0042874D |.^ 76 D8 |JBE SHORT Newddz.00428727
0042874F |. 46 |INC ESI
00428750 |. 8975 8C |MOV DWORD PTR SS:[EBP-74],ESI
00428753 |.^ EB F5 \JMP SHORT Newddz.0042874A
00428755 |> 6A 0A PUSH 0A
00428757 |. 58 POP EAX
00428758 |> 50 PUSH EAX
00428759 |. 56 PUSH ESI
0042875A |. 53 PUSH EBX
0042875B |. 53 PUSH EBX ; /pModule
0042875C |. FF15 9CC04200 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH>; \GetModuleHandleA
00428762 |. 50 PUSH EAX
00428763 |. E8 22100000 CALL Newddz.0042978A
00428768 |. 8945 98 MOV DWORD PTR SS:[EBP-68],EAX
0042876B |. 50 PUSH EAX ; /status
0042876C |. FF15 6CC44200 CALL DWORD PTR DS:[<&MSVCRT.exit>] ; \exit
00428772 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
00428775 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
00428777 |. 8B09 MOV ECX,DWORD PTR DS:[ECX]
00428779 |. 894D 88 MOV DWORD PTR SS:[EBP-78],ECX
0042877C |. 50 PUSH EAX
0042877D |. 51 PUSH ECX
0042877E |. E8 21000000 CALL <JMP.&MSVCRT._XcptFilter>
00428783 |. 59 POP ECX
00428784 |. 59 POP ECX
00428785 \. C3 RET
|
能力值:
(RANK:410 )
|
-
-
5 楼
晕,程序第一个字节都被改成int 3,当然就不能单独运行了。你的意思是想程序启动后,用OD附加吧?那必须将入口点改成jmp eip死循环才行。
|
能力值:
(RANK:10 )
|
-
-
6 楼
最初由 小虾 发布 晕,程序第一个字节都被改成int 3,当然就不能单独运行了。你的意思是想程序启动后,用OD附加吧?那必须将入口点改成jmp eip死循环才行。
是这个意思,不过将入口点改成jmp eip,显示未认可操作数。
这些怎么没有一本书介绍过啊?
|
能力值:
( LV12,RANK:210 )
|
-
-
7 楼
最初由 叮叮当当 发布 是这个意思,不过将入口点改成jmp eip,显示未认可操作数。 这些怎么没有一本书介绍过啊?
把鼠标停在入口那行, ctrl+e, 输入ebfe
|
能力值:
(RANK:410 )
|
-
-
8 楼
嗯,这里的jmp eip的意思就是你将程序入口的前两个字节修改为"EB FE"(在修改时必须记下原来的字节代码,以便在OD里恢复)。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
进来学习
|