本帖最后由 shane007 于 2023-8-23 15:32 编辑
% }7 g4 A, M* m2 h+ ]' ^: a. T2 N( g6 ~, f7 @' Z
本分析使用的是GOG版本。
' H% f+ H4 Y+ J( w7 a这个游戏用dxwnd.exe可以进行窗口化,然后我采用ollyice附加进程的方式进行调试。经过查看,是directx9的游戏。1 X0 k- [! }) l* Q8 X! o5 ]
- .text:004042D8 push 20h ; SDKVersion
( l/ w* [. T! M; |% h7 b( C3 O - .text:004042DA call Direct3DCreate9
复制代码
: q$ _" N9 T8 o
# ^/ A8 J' B j L9 O$ t在游戏画面查找一句对话bought it to look, 点击物品后触发,断点代码如下
, T4 H- x9 [( ]: b- 0069DEDA F3:A5 rep movs dword ptr es:[edi], dword p>
复制代码 * O, x; N0 {6 s2 y( S# c
在ida pro中查看,发现是memcpy函数,查看调用处,有好多20-30个。
4 `) F+ w4 C, a) z: n这个得做个资料,一个一个进行排查了。但是显示函数一定就在其中。4 d' ~1 A/ y. w! ?8 K) v+ o$ v
- void *__cdecl memcpy(void *Dst, const void *Src, size_t Size)
复制代码
$ `# I" T# w; c5 Q! T Z我尝试了其中第一个,在函数开头设置断点,能断下来,说不定,这就是; q5 G) B0 @, Z% L
显示函数其中之一,等以后继续分析。
! Q! p8 X% C$ S2 b) k- int __cdecl sub_408AD0(int a1, int *a2, int a3, int *a4)
复制代码
0 l$ s9 t, M# |' {, ]1 j6 s# u: V% S. V! k
/ w7 \- q) E, {% v v8 E/ X9 w- u6 |4 J. e1 `: {$ n R# v9 N, [3 y
# c! i( o' p4 R4 C: f |