任鸟飞谈逆向-《梦三国》字符串突破口以及跳回游戏领空

在逆向很多数据的时候

无论是PC端还是移动端,我们都会借用到字符串去当突破口

今天只是说说PC端的字符串突破口,移动端下个月忙完手里的工作,分享给大家,我们系统来谈

游戏里面的人物名称,物品名称,怪物名称,任务名称,各种描述实际上都可以当成我们逆向数据的突破口,因为他们也是对象下的一个属性。

方案一,找到字符串地址,在附近地址找其他属性,追任意属性的来源即相当于追了字符串,移花接木

我们知道,包括我们自己写结构的时候也一样,有时候对象的属性是字符串的指针,那么我们逆向也一样,如果周围没有其他属性,我们可以选择CE去扫描存放该字符串指针的地址,再去周围看看是否存放的我们想要的其他属性

方案二,直接对字符串下访问断点,追其来源

往往会断到非游戏领空,那么我们就需要去堆栈中寻找一下来源

有的同学,习惯在CE中查看访问该地址的代码,然后拿到这些访问代码,再到OD中去分析,这种方法在找字符串突破口的时候是行不通的

原因?你拿到的所有代码都是字符串的处理代码,到OD中下断就断,那么多的字符串同时访问的代码,下条件断也是会卡死的,那就根本断不到我们想要的字符串了.

正确的方法应该是,扫描到地址以后,在od中dd该地址 然后直接对其下断,断到访问代码,然后在堆栈中找到其来源 继续追踪即可

下图是梦三国追字符串的例子

从堆栈直接返回到第一次出现的位置继续追

而现在上图断的位置是非游戏领空,是所有字符串都会进行访问的

通过堆栈跳回游戏领空,跟追正常数据一样了

在堆栈窗口右键查找,输入我们要追的字符串地址,CTRL+l查找下一个,直到最后一个,也就是第一次出现的位置

本文来自企鹅号 - 任鸟飞逆向媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏闵开慧

hadoop源码解析1 - hadoop中各工程包依赖关系

1 hadoop中各工程包依赖简述     Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。     G...

2895
来自专栏CDA数据分析师

读书 | Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =。这三章主要讲Spark的运行过程...

1916
来自专栏iOS技术

iOS AutoreleasePool 深入探究

自动释放池,可能对于很多人来说,既熟悉又陌生,作为ARC时代自动管理内存的机制,它一直有着神秘感,为了揭开其面纱,特此写下本篇文章,源码级别对自动释放池进行分析...

3175
来自专栏牛肉圆粉不加葱

YARN资源调度器

1086
来自专栏郭霖

Android DiskLruCache完全解析,硬盘缓存的最佳方案

概述 记得在很早之前,我有写过一篇文章Android高效加载大图、多图解决方案,有效避免程序OOM,这篇文章是翻译自Android Doc的,其中防止多图OOM...

3769
来自专栏恰同学骚年

Hadoop学习笔记—10.Shuffle过程那点事儿

  在第四篇博文《初识MapReduce》中,我们认识了MapReduce的八大步骤,其中在Reduce阶段总共三个步骤,如下图所示:

802
来自专栏java一日一条

HDFS知识点总结

HDFS是什么:HDFS即Hadoop分布式文件系统(Hadoop Distributed Filesystem),以流式数据访问模式来存储超大文件,运行于商用...

652
来自专栏企鹅号快讯

大数据干货系列(二)-HDFS1.0

本文共计876字,预计阅读时长五分钟 一、本质 HDFS(Hadoop Distributed File System)是一种适合运行在通用硬件上的分布式文件系...

2047
来自专栏深度学习入门与实践

【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

  周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =。这三章主要讲Spark的运行...

25210
来自专栏星汉技术

原 Spark的架构

2925

扫码关注云+社区