本帖最后由 shane007 于 2023-8-23 15:32 编辑 & U z2 E4 O/ q1 w3 f: F
& l, F) i7 p' H A& e" Q7 \ V
本分析使用的是GOG版本。5 L- A o& c0 ?3 q$ @( Y
这个游戏用dxwnd.exe可以进行窗口化,然后我采用ollyice附加进程的方式进行调试。经过查看,是directx9的游戏。
t) _9 m0 E% y1 q. T& S3 X" q- .text:004042D8 push 20h ; SDKVersion8 X! o8 \& P- O3 ?2 e- N
- .text:004042DA call Direct3DCreate9
复制代码
" W5 R. K+ ~' L1 k2 [: [
2 Q& f2 n( H" D在游戏画面查找一句对话bought it to look, 点击物品后触发,断点代码如下
/ Q X9 M. `2 A8 A7 L- 0069DEDA F3:A5 rep movs dword ptr es:[edi], dword p>
复制代码 # b8 h$ U/ B& s1 c
在ida pro中查看,发现是memcpy函数,查看调用处,有好多20-30个。% N8 |' d3 E" ]5 U; V9 {# Z3 K' v$ i
这个得做个资料,一个一个进行排查了。但是显示函数一定就在其中。9 @& j$ H& |. p4 }
- void *__cdecl memcpy(void *Dst, const void *Src, size_t Size)
复制代码 6 y5 i: _' H9 L% o2 H8 |
我尝试了其中第一个,在函数开头设置断点,能断下来,说不定,这就是* @/ ~3 z/ A n' D$ N- c
显示函数其中之一,等以后继续分析。
& @$ S6 z* ~$ I. V' J: ]- int __cdecl sub_408AD0(int a1, int *a2, int a3, int *a4)
复制代码
/ y5 S, ^2 w7 {
) l2 H/ s$ I! p# _% b" w* j
, C: Y Q/ v" D* U7 P
$ n) @/ t% {8 {, v4 Z
7 V" }* T. x$ V |