能力值:
( LV9,RANK:156 )
|
-
-
2 楼
用ida反汇编找到调用这段子程序call nop
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
0045A068 . 53 push ebx
改
0045A068 . C3 retn
|
能力值:
( LV6,RANK:90 )
|
-
-
4 楼
在这里下断:0045A068
看是谁调用它,然后NOP它即可。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
CODE:0045A04D align 10h
CODE:0045A050 _str_info_index_htm dd 0FFFFFFFFh ; _top
CODE:0045A050 ; DATA XREF: _TForm1_FormCreate+37o
CODE:0045A050 dd 14 ; Len
CODE:0045A050 db 'info/index.htm',0 ; Text
CODE:0045A067 align 4
CODE:0045A068
CODE:0045A068 ; =============== S U B R O U T I N E =======================================
CODE:0045A068
CODE:0045A068
CODE:0045A068 _TForm1_FormClose proc near ; DATA XREF: CODE:00459F89o
CODE:0045A068 push ebx
CODE:0045A069 mov ebx, eax
CODE:0045A06B push 1 ; nShowCmd
CODE:0045A06D push 0 ; lpDirectory
CODE:0045A06F push 0 ; lpParameters
CODE:0045A071 push offset File ; "http://www.qimingw.net/index.html?wuziq"...
CODE:0045A076 push 0 ; lpOperation
CODE:0045A078 mov eax, ebx
CODE:0045A07A call @Controls@TWinControl@GetHandle$qqrv ; Controls::TWinControl::GetHandle(void)
CODE:0045A07F push eax ; hwnd
CODE:0045A080 call ShellExecuteA
CODE:0045A085 pop ebx
CODE:0045A086 retn
CODE:0045A086 _TForm1_FormClose endp
CODE:0045A086
CODE:0045A086 ; ---------------------------------------------------------------------------
用ida反汇编找到这段代码,好像是在_TForm1_FormClose 过程中执行的这段代码,好像是dephi之类编写的窗口关闭时发生的事件,这种方式,找调用这段子程序地方,没法找啊!
决定用三楼的大侠的方法!
同时感谢各位帮忙!
|
能力值:
( LV9,RANK:156 )
|
-
-
6 楼
上一级调用应该是00459F89。ida od 同时开着ida静态分析od动态调试。
搜索所有常量00459F89全部下断找到关键点nop,如果加过壳dede基本
没用。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
|
能力值:
( LV3,RANK:30 )
|
-
-
8 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
看哪个CALL 以后会弹出网页,就把哪个CALL NOP 掉吧。
先试试 把第一个CALL nop掉。
然后运行看看,没问题得话就行了,不行就NOP 第二个CALL。
总有一个是调用弹出网页的 窗口的。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
nop nop 把弹窗胡语句 nop掉~
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
这个游戏的可执行文件应该只是一个网页浏览器
程序执行后,调用info文件夹下的index.htm
index.htm调用五子棋FLASH游戏 wuziqi.swf
楼主如果不满意修改,自己花个把分钟自个做个壳就好
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
把调用ShellExecute的地方改为调用ExitProcess即可。
改好的.rar
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
[QUOTE=crackdung;921612]改好了
五子棋小游戏.rar[/QUOTE]
的确是改好了,但是我看不出来是哪改了,还请指教,是如何改的?
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
[QUOTE=wep;922718]把调用ShellExecute的地方改为调用ExitProcess即可。
改好的.rar[/QUOTE]
这种方法也不错,只是不知道找jmp ExitProcess的地址,有没有什么高效的方法,还请指教
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
是的,我主要是要想学学用OD调试代码
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
终于找到上一级调用代码了,方法如下:
见http://bbs.pediy.com/showthread.php?t=63391 这个贴子2楼
通过retn返回的地方,找到这个过程的上一级调用!!
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
应该是找 ExitProcess的地址吧
程序最后总是要退出的,在ExitProcess下一个断点,断下来 然后复制ExitProcess的地址
就可以了。 这就是我的方法,本人是菜鸟,高效的方法等待大牛吧。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
在堆栈中可以看到那个返回的地址的
0044A42F FF93 90020000 call dword ptr [ebx+290] ; 五子棋小.0045A068
0044A435 > 5B pop ebx
0044A436 . C3 retn
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
有个简单的办法
在OD里点右键,搜索--所有互调调用,在里面找到ExitProcess
查找互调调用, 项目 241
地址=00403FDA 反汇编=CALL <JMP.&kernel32.ExitProcess> 目标文件=kernel32.ExitProcess
双击它就会回到程序代码
00403FD9 |. 50 |PUSH EAX ; /ExitCode 00403FDA |. E8 CDD2FFFF |CALL <JMP.&kernel32.ExitProcess> ; \ExitProcess 00403FDF |> 8B03 |MOV EAX,DWORD PTR DS:[EBX] 00403FE1 |. 56 |PUSH ESI
双击下00403FDA这行,复制出里面的代码CALL 004012AC
回到ShellExecuteA这儿(也可以在互调里找到),把CALL 004012AC覆盖它就可以了
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
这帖子看得我好欢乐
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
学了习,思路方法值得学习。
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
关注一下。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
最近正了解这方面的东东!
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
有一个open的指令(函数传入参数之一),你直接修改为null就行了
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
xuexi le。。。。。学习
|
|
|