本帖最后由 shane007 于 2023-8-23 15:32 编辑
; D6 ?, M9 x2 D% V' l, p; E$ I* ~/ E1 Z0 U7 g; o1 f5 c y' j
本分析使用的是GOG版本。0 s" G. B: v/ R! `$ T
这个游戏用dxwnd.exe可以进行窗口化,然后我采用ollyice附加进程的方式进行调试。经过查看,是directx9的游戏。# K7 q" f, W8 O9 p3 q4 c. |
- .text:004042D8 push 20h ; SDKVersion7 j9 |, c& U1 v5 u8 I/ H2 L
- .text:004042DA call Direct3DCreate9
复制代码
9 d3 r* I: f0 s; B, I' d. X, l% `- f+ t, W6 [( r
在游戏画面查找一句对话bought it to look, 点击物品后触发,断点代码如下
6 w2 k! c0 ~6 X& A# P( U- 0069DEDA F3:A5 rep movs dword ptr es:[edi], dword p>
复制代码 3 ?0 B) L: D) k6 \) u* ?
在ida pro中查看,发现是memcpy函数,查看调用处,有好多20-30个。8 Y: F x- C7 E S. w/ T
这个得做个资料,一个一个进行排查了。但是显示函数一定就在其中。, T' F6 f2 e5 ]
- void *__cdecl memcpy(void *Dst, const void *Src, size_t Size)
复制代码
0 E0 a# ]: w0 o$ ?- }- h我尝试了其中第一个,在函数开头设置断点,能断下来,说不定,这就是
1 Z& c& L0 ~) ?4 b, \显示函数其中之一,等以后继续分析。4 {+ W+ i9 Z: p( ~. q. K
- int __cdecl sub_408AD0(int a1, int *a2, int a3, int *a4)
复制代码 : F( w5 l/ W A' [/ T. f
# W, p/ X5 x/ |6 }
% {0 P7 K( F/ c% A7 n* z l4 _6 o. p8 h2 |8 M
( w/ W5 X# n3 r0 C |