三国赵云传1---加血代码

上一篇已经找到了游戏中的CALL,按照那个代码抄一份即可。

其中在后面有一个CALL的调用,经过跟踪得知是:向游戏中添加一个消息队列,没有必要。

最后的反汇编代码如下。

PUSH ECX
PUSH EAX
MOVSX ECX,WORD PTR DS:[5D4140]
LEA EAX,DWORD PTR DS:[ECX+ECX*4]
LEA EAX,DWORD PTR DS:[EAX+EAX*4]
LEA EAX,DWORD PTR DS:[EAX+EAX*4]
SHL EAX,4
ADD EAX,ECX
SHL EAX,1
MOV ECX,DWORD PTR DS:[EAX+5DA3FC]
MOV DWORD PTR DS:[EAX+5DA3F8],ECX
POP EAX
POP ECX
RET

无参函数,调用之后直接满血。。。
-----------------------------------------------------------------

又研究了一下,来个给力的,满血满杀气满体力。

PUSH ECX
PUSH EAX
MOVSX ECX,WORD PTR DS:[5D4140]
LEA EAX,DWORD PTR DS:[ECX+ECX*4]
LEA EAX,DWORD PTR DS:[EAX+EAX*4]
LEA EAX,DWORD PTR DS:[EAX+EAX*4]
SHL EAX,4
ADD EAX,ECX
SHL EAX,1
MOV ECX,DWORD PTR DS:[EAX+5DA3FC]
MOV DWORD PTR DS:[EAX+5DA3F8],ECX
MOV ECX,DWORD PTR DS:[EAX+5DB17C]
MOV DWORD PTR DS:[EAX+5DB178],ECX
MOV ECX,DWORD PTR DS:[EAX+5DB174]
MOV DWORD PTR DS:[EAX+5DB170],ECX
POP EAX
POP ECX
RETN


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是建立三国人物关系图谱的代码示例,采用邻接表的形式存储图: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_VERTICES 1000 #define MAX_NAME_LEN 20 typedef struct Vertex Vertex; typedef struct Edge Edge; struct Vertex { char name[MAX_NAME_LEN]; char country[MAX_NAME_LEN]; Edge* first_edge; }; struct Edge { Vertex* dest; char rel[MAX_NAME_LEN]; Edge* next_edge; }; Vertex* vertices[MAX_VERTICES]; int num_vertices = 0; Vertex* create_vertex(char* name, char* country) { Vertex* v = (Vertex*) malloc(sizeof(Vertex)); strcpy(v->name, name); strcpy(v->country, country); v->first_edge = NULL; return v; } void add_vertex(char* name, char* country) { Vertex* v = create_vertex(name, country); vertices[num_vertices++] = v; } void add_edge(Vertex* src, Vertex* dest, char* rel) { Edge* e = (Edge*) malloc(sizeof(Edge)); e->dest = dest; strcpy(e->rel, rel); e->next_edge = src->first_edge; src->first_edge = e; } void build_graph() { // 添加顶点 add_vertex("刘备", "蜀国"); add_vertex("关羽", "蜀国"); add_vertex("张飞", "蜀国"); add_vertex("诸葛亮", "蜀国"); add_vertex("赵云", "蜀国"); add_vertex("马超", "蜀国"); add_vertex("黄忠", "蜀国"); add_vertex("魏延", "蜀国"); add_vertex("庞统", "蜀国"); add_vertex("姜维", "蜀国"); add_vertex("孙权", "吴国"); add_vertex("周瑜", "吴国"); add_vertex("诸葛瑾", "吴国"); add_vertex("陆逊", "吴国"); add_vertex("甘宁", "吴国"); add_vertex("吕蒙", "吴国"); add_vertex("太史慈", "吴国"); add_vertex("孙策", "吴国"); add_vertex("曹操", "魏国"); add_vertex("张辽", "魏国"); add_vertex("许褚", "魏国"); add_vertex("郭嘉", "魏国"); add_vertex("荀彧", "魏国"); add_vertex("曹丕", "魏国"); add_vertex("司马懿", "魏国"); add_vertex("张郃", "魏国"); add_vertex("夏侯惇", "魏国"); add_vertex("典韦", "魏国"); // 添加边 add_edge(vertices[0], vertices[1], "义弟"); add_edge(vertices[0], vertices[2], "义弟"); add_edge(vertices[0], vertices[3], "丞相"); add_edge(vertices[0], vertices[4], "亲信"); add_edge(vertices[0], vertices[5], "部将"); add_edge(vertices[0], vertices[6], "部将"); add_edge(vertices[0], vertices[7], "部将"); add_edge(vertices[0], vertices[8], "谋士"); add_edge(vertices[0], vertices[9], "部将"); add_edge(vertices[10], vertices[11], "主公"); add_edge(vertices[10], vertices[12], "部将"); add_edge(vertices[10], vertices[13], "谋士"); add_edge(vertices[10], vertices[14], "部将"); add_edge(vertices[10], vertices[15], "部将"); add_edge(vertices[10], vertices[16], "部将"); add_edge(vertices[10], vertices[17], "主公"); add_edge(vertices[18], vertices[19], "部将"); add_edge(vertices[18], vertices[20], "部将"); add_edge(vertices[18], vertices[21], "部将"); add_edge(vertices[18], vertices[22], "谋士"); add_edge(vertices[18], vertices[23], "谋士"); add_edge(vertices[18], vertices[24], "皇帝"); add_edge(vertices[18], vertices[25], "皇帝"); add_edge(vertices[18], vertices[26], "谋士"); add_edge(vertices[18], vertices[27], "部将"); add_edge(vertices[18], vertices[28], "部将"); } void print_graph() { FILE* fp = fopen("TRKGraph.txt", "w"); for (int i = 0; i < num_vertices; i++) { Vertex* v = vertices[i]; fprintf(fp, "%s(%s)-->", v->name, v->country); Edge* e = v->first_edge; while (e != NULL) { fprintf(fp, "%s(%s)-->", e->dest->name, e->dest->country); e = e->next_edge; } fprintf(fp, "NULL\n"); } fclose(fp); } int main() { build_graph(); print_graph(); return 0; } ``` 这段代码会生成文件 "TRKGraph.txt",其中保存了邻接表的信息。你可以根据需求进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值