本帖最后由 shane007 于 2023-8-23 15:32 编辑 {6 r9 w6 d+ W; P
' x! q( ~) M& e# {4 G
本分析使用的是GOG版本。
2 U$ D5 B' F, J' m0 S6 o" Q. s这个游戏用dxwnd.exe可以进行窗口化,然后我采用ollyice附加进程的方式进行调试。经过查看,是directx9的游戏。
7 X# N! p& x" N8 `4 g) e# H2 M- .text:004042D8 push 20h ; SDKVersion' [6 O7 V; s- k$ A0 n
- .text:004042DA call Direct3DCreate9
复制代码 ) U8 T: k- q) l- [* w. ~7 w
4 y, s% G$ ~) o. U在游戏画面查找一句对话bought it to look, 点击物品后触发,断点代码如下6 [0 A# E3 V7 T8 o- _
- 0069DEDA F3:A5 rep movs dword ptr es:[edi], dword p>
复制代码
0 O# q0 E. N( d/ D, r& c% y9 ]在ida pro中查看,发现是memcpy函数,查看调用处,有好多20-30个。
1 _0 ~; ^* d: j$ R; [& H' O, ]& `这个得做个资料,一个一个进行排查了。但是显示函数一定就在其中。7 B4 l g4 u; }9 F7 F
- void *__cdecl memcpy(void *Dst, const void *Src, size_t Size)
复制代码 5 U0 {. \/ W- b1 g
我尝试了其中第一个,在函数开头设置断点,能断下来,说不定,这就是
# K$ y0 \$ x2 j: u1 M- J* X4 f4 V显示函数其中之一,等以后继续分析。, S V! ^- O$ S. B! D
- int __cdecl sub_408AD0(int a1, int *a2, int a3, int *a4)
复制代码
: e3 W. m& q0 G8 H9 e' Z( W" N
! n4 J' n& G* G9 Y% \: W& a# J4 \' I8 Z# |
5 Z1 s8 w3 D9 F; m* G9 _% `! s( Y2 p1 h* Q- U( Y$ `$ n
|