口袋侦探2安卓内购破解流程
在上一篇文章中,我介绍了口袋侦探1的破解流程。本文会介绍口袋侦探2的破解流程。
本文使用的是从3DM下载的口袋汉化组汉化版本。
本文的项目地址为:https://github.com/JackNoire/InfinitePrivateEye_CHS
在上一篇文章中,我介绍了口袋侦探1的破解流程。本文会介绍口袋侦探2的破解流程。
本文使用的是从3DM下载的口袋汉化组汉化版本。
本文的项目地址为:https://github.com/JackNoire/InfinitePrivateEye_CHS
口袋侦探是由韩国NFLY STUDIO于2013年左右推出的手机游戏,分为1、2两部,由口袋汉化组汉化。NFLY STUDIO传闻已解散,该游戏也很久未更新,安卓版只能在很老的Android 4环境下运行。
在Reddit上看到一篇帖子,希望能找到一个老版本的安卓模拟器,在上面运行一款2010年左右,由广州奥兹软件公司制作的手机游戏Battleground,中文名称为《战争之王》,该游戏无法在Android 4.0+的系统上运行。
在Android中,可以使用AIDL(The Android Interface Definition Language,安卓接口定义语言)实现进程间通信。本文记录了使用AIDL实现进程间通信的方法。
Android官方给的AIDL文档地址:
在HTML中,实现富文本/所见即所得编辑器的一种方法是将iframe中body的contentEditable属性设置为true。QQ邮箱的写信功能就使用了这一原理:
火绒的设置中可以勾选开启勒索病毒诱捕功能,开启后,火绒会在C盘创建两个文件夹,里面包含一些诱饵文件。当勒索软件对这些诱饵文件加密时,就会被火绒拦截。
https://bbs.huorong.cn/thread-22817-1-1.html
这两个文件夹的属性与普通的用户文件夹不同。勒索软件如果只需要加密普通的用户文件夹,则只用进行一些简单的判断就能识别并避开这些诱饵文件了。
本文记录了函数参数以及返回值是结构体时,汇编代码是什么样的。本文使用的编译器为Visual Studio中的cl.exe,版本为用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.28.29910 版
。
利用Windows内核提供的事件通知机制,可以对系统内某一类事件的操作进行监控。比如,可以通过PsSetCreateProcessNotifyRoutineEx函数注册一个创建进程的通知,从而实现对进程创建的监控。
本文主要参考《Windows内核编程》第21章。
首先,创建一个挂起状态的合法进程(比如notepad进程),然后再使用ZwUnmapViewOfSection
或NtUnmapViewOfSection
将合法的notepad模块占据的内存空间给unmap掉。接下来,向notepad的内存空间中写入恶意的PE文件,并通过修改进程的context,将入口点改为恶意PE文件的入口点。最后,使用ResumeThread
使notepad恢复执行,从而达到在notepad进程空间中运行恶意PE文件的效果。这种方法就是Process Hollowing。
本文大量参考Leitch, J. (n.d.). Process Hollowing.这篇文章。
进程注入的一种实现方法是将恶意代码直接复制到目标进程的内存空间,并通过CreateRemoteThread在目标进程中执行这段恶意代码。这个方法的一个难点在于,恶意代码复制到目标进程的内存空间后,它的基地址可能会发生变化。假如说恶意代码需要对自身某个特定地址的数据进行访问,就会访问不到这个数据,因为数据的地址已经改变了。为了解决这一问题,需要进行重定位的操作。