sse 指令中 xmm 寄存器复制到内存出现异常

在将我的东方弹幕游戏拖到 win10 虚拟机中运行时发现程序一运行就崩溃了,报了内存访问异常(0xc0000005),而且多运行几次现象也会不同,有时是直接崩溃,有时还能坚持到显示完启动画面,但进入游戏时还是会高概率的崩溃 – -b 。

于是挂上 windbg 看一下,发现断在了这里

0012da40 55              push    ebp
0012da41 8bec            mov     ebp,esp
0012da43 8b4508          mov     eax,dword ptr [ebp+8]
0012da46 0f2800          movaps  xmm0,xmmword ptr [eax]
0012da49 0f2901          movaps  xmmword ptr [ecx],xmm0    ; <--- 0xc0000005
0012da4c 0f284010        movaps  xmm0,xmmword ptr [eax+10h]
0012da50 0f294110        movaps  xmmword ptr [ecx+10h],xmm0

获取 USB 扫描枪输入

最近公司买了个扫描枪,要给设备二维码做扫描录入工作。原来跟我说的是串口的扫描枪,没想到后来买到的是 usb 的,似乎是考虑到 usb 的比较普遍。果然串口还是没 usb 来得方便啊,在使用上。

以前没搞过 usb 的,一开始还以为不能工作,后来开了个记事本发现能正常录入了。。。

上网确认了一下果然是通过类似键盘事件进行输入的,那这样就上键盘钩子吧。


菱形继承的内存布局

菱形继承来自于多重继承,是为了解决具有歧义的组合而产生的一个结果。通过引入虚继承,使得多个由虚基类直接或间接派生的类拥有一个共同的基类实例。实现上相当于派生类绕过了父类直接继承了祖父类(虚基类)。
下面我们通过 MSC 14 编译器(VS2015)来看一下菱形继承的实现细节。


东方弹幕全明星 ~ Touhou Barrage All Star.

※※※※※※ 2020 / 01 / 04 日已更新!※※※※※※

介绍

作为 DX 练手而写的东方弹幕游戏,算是视频链接简陋复刻了∠( ᐛ 」∠)_。其本体是由 yuke 氏制作的原作风自制弹幕游戏,只制作了演示动画,而游戏本体并没有进行发布。插画来自画师 kaoru

视频里的所有 66 只 boss 已经全部完成,勉强算是在二零衣玖年搞定了,完结撒花 *★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

顺便一提这里也参考原视频没有设置残机、Bomb以及符卡的限制时间,也没有 Miss 后的全屏消弹。累积下来的被弹数会显示在屏幕右上方。靠底力扭过去吧!


CrackMe 反汇编练习之 011

作为练手的 160 个 CrackMe 系列整理分析


CrackMe 反汇编练习之 006

作为练手的 160 个 CrackMe 系列整理分析


CrackMe 反汇编练习之 005

作为练手的 160 个 CrackMe 系列整理分析


CrackMe 反汇编练习之 004

作为练手的 160 个 CrackMe 系列整理分析


Remember11 解包

r11 的封包是 afs 格式的,封包没有压缩和加密,在封包头部有文件的偏移和大小,封包尾部有各文件的文件名以及其他一些信息。

    所有封包中含有以下类型文件:

  • bip: lzss 压缩或未压缩的多 png 组合文件
  • t2p: lzss 压缩的 tim2 文件,tim2 可转为 bmp 文件
  • adx: 原始 ogg 或 wav 声音文件

Remember11通关一些总结

趁着过年花了几天时间推了时空系列的最后一作 Remember11,感觉 R11 倒在了神作的目标前有点可惜啊www

心篇和悟篇的 GE 还是比较容易达成的,完成之后我以为还有个隐藏的 TE,因此不断尝试不同的选择肢,然而却走出不少 BE 来,真是让我失望啊,遂放弃,找到攻略一看原来并没有所谓 TE ⚆_⚆ 这个把线索藏好要打出 BE 才能看的做法实在是有点鬼畜=_=”。早在玩 r11 之前就听到不少关于“半成品”的评价,这才体会到没有解谜篇的蛋疼之处。当然我还是非常喜欢这个故事的。整个游戏里并没有什么多余的恋爱要素,和 N7、E17 不同,也没有冗长的白开水日常,直接进入主线引出谜团,剧情显得十分紧凑。另外 bgm 果然还是很好听的 w