修改SO
2024-09-05 08:32:04
1.如果在jni中定义的是int型的数据,比如:
JNIEXPORT jint JNICALL Java_com_ggndktest1_JniGg_getCoin
(JNIEnv * env, jobject this)
{
int c=;
return c;
}
这个int类型的c可以通过那么可以通过查看opcode来查看,如下图,64 20。这样从C04处找到64就可以修改int数值。
2.如果在jni中定义的是char(C语言中 string 相当 char数组,而且,最后一位位"\0",即字符串结束标志),比如
char* vip= "Gold Vip";
那就不能像上面那样改了,可以直接在so中搜索这个string然后修改,但是好像只能改短,剩下的用空格代替。
3.BEQ/BNE之类的指令,可以在IDA中找到然后修改。步骤是先选中BEQ,然后打开HEX-VIEW,修改成BNE所代表的两个16进制数。
另外,如果想要旁路掉这个句子(专业名词好像叫nop),那么把两个16进制数改成00 00,再返回,发现指令变成了MOVS R0,R0;这个句子似乎就不起作用了。
hey,想了解关于opcode,看这里:http://www.cnblogs.com/wanyuanchun/p/3707907.html#3111053
最新文章
- Navicat安装详解
- 如何用Python实现目录遍历
- Nhibernate基础
- wp8 安装.Net3.5
- jquery.scrollTo-min.js
- 某Java游戏服务器用到的知识
- 讲座:html5于canvas疯狂的炮轰实现
- JavaWeb 后端 <;五>; 之 JSP 学习笔记
- 关于javacc的认识
- AB串
- makefile编写--引用
- BZOJ 1069: [SCOI2007]最大土地面积 [旋转卡壳]
- C#冒泡法排序源码
- es6 语法 (let 和const)
- C语言 大小写字母转换
- 基于Python——实现两个文件夹中的文件拷贝
- (转)Servlet的生命周期——初始化、运行、销毁全部过程
- Oracle Supplemental 补全日志介绍
- SVN教程 -- 基于自己学习记录
- Linux Shell中管道的原理及C实现框架