Skip to content

Instantly share code, notes, and snippets.

@cdfmr
Last active August 29, 2015 14:05
Show Gist options
  • Save cdfmr/0515e9f2f63e77c4ac5b to your computer and use it in GitHub Desktop.
Save cdfmr/0515e9f2f63e77c4ac5b to your computer and use it in GitHub Desktop.
Replace RaidenII's background music playing
;跳过光盘检测
0040692D E9 C5010000 JMP 00406AF7
;初始化设备
00402F20 60 PUSHAD ;保留作案现场
00402F21 68 60324000 PUSH 00403260 ;回调函数
00402F26 FF15 74E0CB00 CALL DWORD PTR DS:[fakecd_init] ;偷梁换柱
00402F2C 83C4 04 ADD ESP,4 ;平衡堆栈
00402F2F 61 POPAD ;恢复现场
00402F30 33C0 XOR EAX,EAX ;返回值
00402F32 C3 RETN
;暂停播放
00403100 60 PUSHAD
00403101 FF15 78E0CB00 CALL DWORD PTR DS:[fakecd_pause]
00403107 61 POPAD
00403108 33C0 XOR EAX,EAX
0040310A C3 RETN
;播放
00403040 33DB XOR EBX,EBX
00403042 8A5C24 04 MOV BL,BYTE PTR SS:[ESP+4] ;音轨编号
00403046 4B DEC EBX ;校正,因为第一条轨道是数据轨
00403047 60 PUSHAD
00403048 53 PUSH EBX
00403049 FF15 7CE0CB00 CALL DWORD PTR DS:[fakecd_play]
0040304F 83C4 04 ADD ESP,4
00403052 61 POPAD
00403053 33C0 XOR EAX,EAX
00403055 C3 RETN
;恢复播放
00403140 60 PUSHAD
00403141 FF15 80E0CB00 CALL DWORD PTR DS:[fakecd_resume]
00403147 61 POPAD
00403148 33C0 XOR EAX,EAX
0040314A C3 RETN
;设置音量
004032C0 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4] ;音量参数
004032C4 60 PUSHAD
004032C5 51 PUSH ECX
004032C6 FF15 84E0CB00 CALL DWORD PTR DS:[fakecd_set_volume]
004032CC 83C4 04 ADD ESP,4
004032CF 61 POPAD
004032D0 33C0 XOR EAX,EAX
004032D2 C3 RETN
;停止播放
00402FF0 60 PUSHAD
00402FF1 FF15 88E0CB00 CALL DWORD PTR DS:[fakecd_stop]
00402FF7 61 POPAD
00402FF8 33C0 XOR EAX,EAX
00402FFA A3 24174D00 MOV DWORD PTR DS:[4D1724],EAX ;下一条音轨,原有逻辑,下同
00402FFF A3 20174D00 MOV DWORD PTR DS:[4D1720],EAX ;播放状态
00403004 C3 RETN
00403005 90 NOP ;填充
00403006 90 NOP ;防止破坏其它指令的正常显示
00403007 90 NOP
00403008 90 NOP
;关闭设备
00402FA0 60 PUSHAD
00402FA1 FF15 8CE0CB00 CALL DWORD PTR DS:[fakecd_uninit]
00402FA7 61 POPAD
00402FA8 33C0 XOR EAX,EAX
00402FAA C3 RETN
;回调函数(一首音乐播放完毕后触发),此函数基本未修改,只是去除了对消息参数的检测
00403260 A1 20174D00 MOV EAX,DWORD PTR DS:[4D1720]
00403265 85C0 TEST EAX,EAX
00403267 74 10 JE SHORT 00403279
00403269 60 PUSHAD
0040326A A1 24174D00 MOV EAX,DWORD PTR DS:[4D1724]
0040326F 50 PUSH EAX
00403270 E8 CBFDFFFF CALL 00403040
00403275 83C4 04 ADD ESP,4
00403278 61 POPAD
00403279 33C0 XOR EAX,EAX
0040327B C3 RETN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment