本来是学习一下某P的技术,后来分析一下这款游戏,没有多少技术含量,就发出来献献丑,给各位看客一个抛砖引玉的作用吧。
经过我的测试发现,这里就是我想找的,游戏组包Post给Socket系统的Dispatch点了。就是那个call dword ptr [edx+8]
然后跟进去单步,然后发现了一些有意思的东西
传入的是一个类指针,然后通过虚函数取出类名和协议号,暴露了!
于是经过研究,这是一个网络通信message类指针,里面有CEvent*开头的类名称和对应的协议ID。
message id的枚举:写一个IDA脚本,枚举出dll内所有的CEvent开头的字符串,然后反向枚举出类指针,再通过类指针获取到message id
脚本如下
跑完了之后看了一下结果
[9071]CEventUIOperation
[63551]CEventBeginGlobalMatch
[9003]CEventUserLogOut
[32752]CEventAddKtvStarValue
[32603]CEventPetTowerEnter
[32605]CEventPetTowerLeave
[32614]CEventPetTowerFinishNode
[6078]CEventTglogOssUIButtonLimit
[32451]CEventLoveAlbumUploadPhoto
[6063]CEventDynamicParam2Client
[9007]CEventEditRole
[1000]CEventTest
[10006]CEventNoticeHealthStatus
[6079]CEventPlayerTransform
[62379]CEventGlobalAds
[36024]CEventCollocationOSS
[9105]CEventHangUpStateChange
[5059]CEventChangeAvtarItem
[37031]CEventNotifyQQWeiblogMsg
[27525]CEventOpenVipBox
[9547]CEventKTVSaveAudio
[32332]CEventChangeVipRoomProtrait
[19010]CEventActivityRewards
[8540]CEventLoadDungeonAward2
[5058]CEventFusion
[8031]CEventPlayerChangeAvatar
[64444]CEventTangoActivityNotifySelectModelResult
[5096]CEventPetShift
[61855]CEventQuestClientTrigger
[64441]CEventTangoActivityGetTopicInfoRes
[65293]CEventLimitedTreasureExchange
[65282]CEventAMQuestLotteryOpenSubUIRes
[63774]CEventInnerActivityEnter
......
至此,协议号dump出来了
后续分析中,发现有的协议号调用了某P的TerSafe中封包加密,有时间再分析吧。
看了一下目录结构,研究了一下3D引擎,没看出什么东西,然后又去官网看了一下,发现是该公司自研的一套引擎,也就下载不到源码分析了,只能瞎子过河了。
大厅说了几句话,然后抓包看
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2019-10-16 15:59
被少妇之友编辑
,原因: