一.《HIT2台服韩服》背包遍历和物品品质潜规则

首先找背包遍历

1.通过物品数量我们入手找
2.首先CE搜索当前药品数量


3.然后消耗一瓶血药

 

4.CE继续搜索10,你会发现还剩下1423个结果

5.经过我们几次的筛选,最终找到几个结果

6.拿到地址后,我们用XDBG附加游戏后查看这个地址

7.随后我们在这个地址上下写入断点,通过消耗血药,就能触发断点

8.我们发现rbp+68]存的就是数量,那么rbp就是一个结构体,通过几层返回

9.找到了一个结构体数组遍历,这个结构体数组存在背包组件对象+40的偏移,同是我们发现结构体大小为0x28

9.我们进入这个结构体数组看一看,可以看到每0x28结构体大小就是一个背包物品信息

物品品质分析
1.很显然我们可以看到每个结构体的信息大概是什么,
+0是ID
+10是对象1
+18对象2

2.目前还不清楚分配存储的是什么信息,那么我们手动进入这2个对象进去看看
3.首先进入对象1,发现在+68的地方就是我们上面用CE搜索出来的数量的偏移,尽管可能不是同一个物品对象但是结构体是一样的

4.在找品质的时候,我们要清楚UE4的一些潜规则!
5.大多数UE4 UE5游戏品质类型规定1为白 2为绿 3为蓝 4为紫 5黄 6橙 7红 不是这些数字全看做白装
6.通过观察我们发现我们背包的基本全是白装,那么品质类型应该是1才对
7.继续观察上面对象1的数据信息,发现了很多1,那么我们尝试修改为2,然后回到游戏观察,结果发现对象1下没有品质属性
8.好,那么我们继续观察,最好搞2个物品的对象1信息比较下
9.发现当前对象1是没有的,但是我们仔细观察到在+80+88的地方有2个对象,目前还不知道是啥,就是看到了也有类似1的存在,我们可以尝试修改下

10.果不其然在+26 一个字节的地方找到了


11.多改几次看看


12.这样我们就通过观察对比加上一些潜规则就找到了我们物品的品质类型了!

感谢关注迪大学院:285530835

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Elasticsearch中,每个索引都被分成多个分片(shard),每个分片包含了一部分的文档和它们的相关信息。每个分片都会被划分成多个段(segment),每个段包含了一部分文档的索引信息。而每个段又被划分成多个块(block),每个块包含了一部分的倒排索引数据。块是Lucene索引的最小单位。 当我们需要遍历每一个Bucket时,我们其实是要遍历每个分片的每个块的每个文档。具体代码如下: ```java import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.common.document.DocumentField; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import java.io.IOException; import java.util.Map; public class TraverseBucketsExample { private final RestHighLevelClient client; public TraverseBucketsExample(RestHighLevelClient client) { this.client = client; } public void traverseBuckets(String indexName, String fieldName) throws IOException { SearchRequest searchRequest = new SearchRequest(indexName); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchAllQuery()); searchSourceBuilder.size(100); searchSourceBuilder.timeout(TimeValue.timeValueMinutes(1)); HighlightBuilder highlightBuilder = new HighlightBuilder(); highlightBuilder.field(fieldName); searchSourceBuilder.highlighter(highlightBuilder); searchRequest.source(searchSourceBuilder); SearchResponse searchResponse = client.search(searchRequest); SearchHit[] searchHits = searchResponse.getHits().getHits(); for (SearchHit hit : searchHits) { String id = hit.getId(); Map<String, Object> sourceAsMap = hit.getSourceAsMap(); Map<String, DocumentField> fields = hit.getFields(); Map<String, Object> highlightFields = hit.getHighlightFields(); // 遍历每个Bucket for (Map.Entry<String, Object> entry : sourceAsMap.entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); // 处理Bucket中的每个文档 if (value instanceof Map) { Map<String, Object> map = (Map<String, Object>) value; for (Map.Entry<String, Object> docEntry : map.entrySet()) { String docKey = docEntry.getKey(); Object docValue = docEntry.getValue(); // 处理文档中的每个字段 if (docValue instanceof String) { System.out.println("Doc ID: " + id + ", Bucket Field: " + key + ", Doc Field: " + docKey + ", Doc Value: " + docValue); } } } } } } } ``` 在上述代码中,我们首先构建一个SearchRequest对象,然后使用RestHighLevelClient执行搜索操作,获取到SearchResponse对象。从SearchResponse中获取到所有的SearchHit,然后遍历每一个hit,遍历每个Bucket,再遍历Bucket中的每个文档,最后处理文档中的每个字段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迪大学院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值