本帖最后由 shane007 于 2023-8-23 15:32 编辑
) s/ V! ^$ z8 n# L# y2 @
5 W7 Y. S+ }$ u& v3 ?0 }本分析使用的是GOG版本。
" e: k6 h1 T8 Q- {8 J7 ~9 P这个游戏用dxwnd.exe可以进行窗口化,然后我采用ollyice附加进程的方式进行调试。经过查看,是directx9的游戏。) a$ o5 g2 f2 ~/ d& a2 m
- .text:004042D8 push 20h ; SDKVersion
8 ?: V( m1 ~0 t6 G/ p$ v3 { - .text:004042DA call Direct3DCreate9
复制代码
$ q1 \/ I" y, h$ a# W$ s" e" G2 C7 l6 B8 r2 k% x2 \
在游戏画面查找一句对话bought it to look, 点击物品后触发,断点代码如下
; Z9 B; l6 N# O' \# t) w( E- 0069DEDA F3:A5 rep movs dword ptr es:[edi], dword p>
复制代码
/ B7 |, I1 m+ N" w2 H( }$ F在ida pro中查看,发现是memcpy函数,查看调用处,有好多20-30个。
# d0 T6 ?3 R4 L& P$ V% x4 s这个得做个资料,一个一个进行排查了。但是显示函数一定就在其中。. Z# r6 G0 a: @! R9 X1 x* N
- void *__cdecl memcpy(void *Dst, const void *Src, size_t Size)
复制代码
; y# C, {, d; ~9 m% n) j( ?9 {5 R我尝试了其中第一个,在函数开头设置断点,能断下来,说不定,这就是
5 [$ b0 G [) _+ i显示函数其中之一,等以后继续分析。
; D! E1 e2 U6 f( ?2 v/ M8 o4 B1 n- int __cdecl sub_408AD0(int a1, int *a2, int a3, int *a4)
复制代码 2 i" F" W9 W3 Z# h3 k# }
1 v' ~1 z# M8 C i" c
" [( |% T# z3 }( P4 a6 u4 J( u- u; u3 B5 [0 }, h! M
; m3 O$ d. N0 o* f/ _ |