本帖最后由 shane007 于 2023-8-23 15:32 编辑 ; U& V* ^% i7 {4 l
* t7 o1 ~$ Z0 d' T( @3 e本分析使用的是GOG版本。+ Y: B5 X& U% d
这个游戏用dxwnd.exe可以进行窗口化,然后我采用ollyice附加进程的方式进行调试。经过查看,是directx9的游戏。. _% A. R. U% ?) Y; Q0 e6 t
- .text:004042D8 push 20h ; SDKVersion! G2 e2 n2 W% E/ A4 U; H
- .text:004042DA call Direct3DCreate9
复制代码
) x7 N1 L9 Y% e$ z1 q9 [9 n" B+ f1 B
2 G% o4 T& t2 b3 ]5 }在游戏画面查找一句对话bought it to look, 点击物品后触发,断点代码如下
# p. g: p; M- Q a- 0069DEDA F3:A5 rep movs dword ptr es:[edi], dword p>
复制代码
9 p; ^& {: G f% F6 Q8 X' ]) y在ida pro中查看,发现是memcpy函数,查看调用处,有好多20-30个。* r3 t) I( E2 C9 Y* d0 _! @1 C
这个得做个资料,一个一个进行排查了。但是显示函数一定就在其中。; {! o7 V2 I% b n1 u% T
- void *__cdecl memcpy(void *Dst, const void *Src, size_t Size)
复制代码
2 g4 K7 t! N4 d9 Q" T1 L: ~我尝试了其中第一个,在函数开头设置断点,能断下来,说不定,这就是3 R, Q. T! ?; C. M) M6 i. V: o
显示函数其中之一,等以后继续分析。
2 @% ?1 K% C8 o, z- int __cdecl sub_408AD0(int a1, int *a2, int a3, int *a4)
复制代码
0 _. U- L2 ~+ T! e2 w! p+ P. f6 z3 b0 d
4 ?3 ^. ~0 w+ T9 h" h- P; L0 r
3 ]1 _4 C/ P4 g) o- }7 Z9 q! B
. K8 _: ~8 |2 B3 r0 L6 J |