本帖最后由 shane007 于 2023-8-23 15:32 编辑 , U2 |2 H$ I$ H" J8 R
: B0 s+ x6 { v7 p本分析使用的是GOG版本。
. a" B* V) b% n5 s8 q! p这个游戏用dxwnd.exe可以进行窗口化,然后我采用ollyice附加进程的方式进行调试。经过查看,是directx9的游戏。$ f6 v0 J/ j V i
- .text:004042D8 push 20h ; SDKVersion
, {& S! T' w' ^# F8 y! ]) B8 b+ p - .text:004042DA call Direct3DCreate9
复制代码
. G- M g1 Q- s; w7 ^; U. n
' z2 _ H" i* q3 U- v: m在游戏画面查找一句对话bought it to look, 点击物品后触发,断点代码如下
% } h% y7 l' v# s( {- 0069DEDA F3:A5 rep movs dword ptr es:[edi], dword p>
复制代码
8 O4 {* O' Q0 R. z; I% M$ r3 F在ida pro中查看,发现是memcpy函数,查看调用处,有好多20-30个。; H# K5 q) ]7 d! ?! e/ d1 R9 K; w
这个得做个资料,一个一个进行排查了。但是显示函数一定就在其中。6 p) j; q, O. F; w
- void *__cdecl memcpy(void *Dst, const void *Src, size_t Size)
复制代码
* ^. Q# a! M6 \. |& `5 j6 f我尝试了其中第一个,在函数开头设置断点,能断下来,说不定,这就是- g8 [$ T' j- n7 U, _4 h
显示函数其中之一,等以后继续分析。
2 a$ A& p$ V. s, y- int __cdecl sub_408AD0(int a1, int *a2, int a3, int *a4)
复制代码 ) @9 v3 J+ m; U( }' Y+ {
, t1 v& ]! I' r" j6 l! ? F+ J
8 y; @7 |0 {* y6 o; r
2 T% {0 Y' |* _: k
|