首页
社区
课程
招聘
[求助]如何将软件的入口点改成CC,又如何再改回来?
发表于: 2007-1-4 12:47 5369

[求助]如何将软件的入口点改成CC,又如何再改回来?

2007-1-4 12:47
5369
附加的进程暂停于 ntdll,无法调试。不知道怎么办?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 50161
活跃值: (20610)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
1.改成CC,OD打开目标程序,到入口点,敲入INT 3,同时记下原指令
2.恢复,OD加载后,将这个INT 3还原为原指令
2007-1-4 13:04
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看雪老大就是好人一个

支持
2007-1-4 13:52
0
雪    币: 0
能力值: (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
2007-1-4 14:06
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
晕,程序第一个字节都被改成int 3,当然就不能单独运行了。你的意思是想程序启动后,用OD附加吧?那必须将入口点改成jmp eip死循环才行。
2007-1-4 14:55
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 小虾 发布
晕,程序第一个字节都被改成int 3,当然就不能单独运行了。你的意思是想程序启动后,用OD附加吧?那必须将入口点改成jmp eip死循环才行。


是这个意思,不过将入口点改成jmp eip,显示未认可操作数。
这些怎么没有一本书介绍过啊?
2007-1-4 16:41
0
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
7
最初由 叮叮当当 发布
是这个意思,不过将入口点改成jmp eip,显示未认可操作数。
这些怎么没有一本书介绍过啊?


把鼠标停在入口那行, ctrl+e, 输入ebfe
2007-1-4 17:01
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
嗯,这里的jmp eip的意思就是你将程序入口的前两个字节修改为"EB FE"(在修改时必须记下原来的字节代码,以便在OD里恢复)。
2007-1-4 18:36
0
雪    币: 196
活跃值: (345)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
进来学习
2007-1-4 18:53
0
游客
登录 | 注册 方可回帖
返回
//