文章目录1、Java Bytecode Reversing and Patching Exercise方法一:修改if_icmplt方法二:修改if_icmplt方法三:修改return2、201807 test.class Time4.class第一小题:test.class方法一:直接用二进制编辑器修改.class文件方法二:用Bytecode字节码查看器和JClassLib包的代码修改.c
转载
2024-01-23 22:19:46
19阅读
1.逆向的作用1.可以免费试用收费软件 2.编程和逆向相辅相成,比如写代码莫名报错、又找不到原因 3.可以分析软件是否有恶意代码或者程序是否有安全漏洞 4.提高自己在企业的竞争力,比如:可以负责公司的软件安全防破解 5.为恶意代码分析做铺垫2.可以逆向出源码的语言java和C#、python可以逆出源码3.中文字符串搜索方法1.ida添加搜索中文功能:选中ida图标,右键属性,在目标后面加上 -d
转载
2023-10-17 10:37:53
99阅读
java script代码,还没学,边搜边学吧。(1)Package:为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间(2)java.util:Java的实用工具类库java.util包。 在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取
转载
2023-07-05 22:45:09
10阅读
java面试:手写代码
二分查找法/**
* 二分查找法。时间复杂度:O(log n)
* 二分查找法:给定一组有序的数组,每次都从一半中查找。直到找到要求的数据。
*
* @param nums
* @param target
* @return
*/
pub
转载
2023-07-06 22:18:16
0阅读
笔者在多年的软件开发过程中,阅读过不少成熟软件的源码,通过参考借鉴先进软件的设计理念,少走了很多弯路。多年的经验告诉我要想在软件架构设计上有快速进步,唯有站在巨人的肩膀上,逆向工程便是通向巨人肩膀的一条捷径。然而做过逆向工程的人都知道,要想对源码进行逆向工程,发掘设计者的设计理念和意图实在是一件不容易的事情。但是,只要掌握了一定的方法和技巧,逆向工程也不是不可能的任务。本文重点针对java语言的逆
转载
2023-06-19 14:45:59
469阅读
项目架构技术要求Spring,MyBatis,SpringMVC,Maven:根据任务去分析实现任务功能的思路,然后根据思路去画出流程图步骤,在把流程图步骤翻译成注解,在根据注解去编写代码总结:目标 > 思路 > 代码创建工程MyBatis逆向工程MyBatis的逆向工程会去根据数据表自动生成pojo类、dao接口、sql映射文件。也就是说,逆向工程的目的是为了简化开发,加快我们的开发
转载
2024-01-15 13:07:12
70阅读
一 加密函数1. base64加密函数(1)buuctf 刮开有奖1(未转换)_BYTE *__cdecl sub_401000(int a1, int a2)
{
int v2; // eax
int v3; // esi
size_t v4; // ebx
_BYTE *v5; // eax
_BYTE *v6; // edi
int v7; // eax
_BYT
转载
2023-08-22 22:50:16
220阅读
1. 断点调试接下来介绍一个非常重要的功能 —— 断点调试。在调试代码的时候,我们可以在需要的位置上打断点,当对应事件触发时,浏览器就会自动停在断点的位置等待调试,此时我们可以选择单步调试,在面板中观察调用栈、变量值,以更好地追踪对应位置的执行逻辑。那么断点怎么打呢?我们接着以上面的例子来说。首先单击如图所示的代码行号。这时候行号处就出现了一个蓝色的箭头,这就证明断点已经添加好了,同时在右侧的 B
转载
2023-12-09 22:18:08
0阅读
打开后提示输入jdk,准备好jdk 11版本的目录 粘贴进去输入就行了。image.png和ida不同,这个需要新建项目,然后导入文件,这里可以批量导入。导入成功之后双击so就可以打开image.pngcodebrower就是反汇编工具,image.png和ida一样输入;可以添加备注。可以选择c文件对应的方法image.pngimage.png你是怎么发音Ghidra的?啧啧,druh。G听起来
糖果 · 2015/07/06 15:17翻译书籍:Reverse Engineering for Beginners作者:Dennis Yurichev翻译者:糖果54.1介绍大家都知道,java有很多的反编译器(或是产生JVM字节码) 原因是JVM字节码比其他的X86低级代码更容易进行反编译。a).多很多相关数据类型的信息。b).JVM(java虚拟机)内存模型更严格和概括。c).java编译
转载
2023-10-16 13:33:35
44阅读
1、缓存1.1 简介1、什么是缓存 [ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2、为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。3、什么样的数据能使用缓存?经常查询并且不经常改变的数据。1.2、MyBatis缓存MyBa
文章目录视频教程连接实现的效果实现这些IOC的思路1. 获取到我们要管理的Class对象2.实例化要管理的对象 把初始化之后的对象给放到Map容器里面3.依赖注入的实现具体实现步骤注解MyBeanDefinition 存放Class和ClassNameMyAnnotationConfigApplicationContext(重点 IOC的核心)就和上面思路里面说的一样 分三步走就好了第一步的实现
转载
2023-08-16 21:18:30
85阅读
HashMap简介HashMap是Java中一中非常常用的数据结构,也基本是面试中的“必考题”。它实现了基于“K-V”形式的键值对的高效存取。JDK1.7之前,HashMap是基于数组+链表实现的,1.8以后,HashMap的底层实现中加入了红黑树用于提升查找效率。HashMap根据存入的键值对中的key计算对应的index,也就是它在数组中的存储位置。当发生哈希冲突时,即不同的key计算出了相同
转载
2024-06-05 19:08:39
11阅读
一、概述Spring的最根本的使命就是简化开发。体现在:基于POJO的轻量级和最小侵入性编程,通过DI和面向接口实现松耦合,基于切面和惯性声明式编程,通过切面和模板减少样板代码。Spring是面向Bean进行编程的,Spring提供了IOC容器通过配置文件或者注解的方式来管理对象之间关系。Spring的注入方式:Setter、构造方法、强制赋值。控制反转的两种方式是依赖注入和依赖查找,最早Spri
转载
2024-07-05 11:19:23
16阅读
今天是2023年1月1日,绝佳的日子。前几天正好在开始重学java,那就从今天开始写博客记录学习之路。本科四年,工作三年,再加上去年九月开始读研,接触CS很久了。希望这次可以从一个比较宏观的角度,扎实地学好java。目前是先找了一个网课开始学(不想再啃大部头了,学C++那会就是看书,比较折磨)后期会加上刷题,做项目,准备面试题。每天学习量不求多,只求坚持。每天都在认真追求知识上的进步,那么生活自然
转载
2023-09-08 21:43:46
50阅读
遇到重复工作一定想办法将其转化为自动化,我觉得这才是合格的程序猿。我们日常开发中遇到的80%的代码都是增删改查,当然,已经有一些插件,比如MP提供了一整套的代码生成方案,但是提供的基本都是java代码,因为模板语言有太多种,根据每个人每个项目的不同而不同,但是,模板中一样也基本是列表和表单提交,怎么来解决这个重复工作呢?思路:依然依赖mp组件,因为mp已经提供了对应的BaseService,Bas
转载
2023-10-05 11:43:21
43阅读
手写代码模块(Java实现)——树0.Previous Prepare (TreeNode)private class TreeNode<T>{
private T data;
private TreeNode<T> left;
private TreeNode<T> right;
public
转载
2024-04-12 09:51:44
35阅读
池化是我们在实际生产中经常用到的一种思想,通过一个 “池” 把资源统一的管理起来。可以达到对资源的合理管理、重复利用、减少资源创建/销毁的开销等目的。 常见的比如常量池、连接池、线程池,今天我们手撸一个线程池。 抛开语言特性,线程池无非是维护一堆线程阻塞等待任务的到来,并由主线程对任务线程的数量进行动态控制的组件。做到线程资源的复用及统一管理,同时避免大量的线程创建销毁的开销,并控制总的线
转载
2023-07-19 17:21:56
97阅读
算法流1.欧几里得算法(辗转相除法):2.冒泡排序:3. 选择排序:4.插入排序:5.希尔排序:6.快速排序:7.二分查找:8.karatsuba算法: 1.欧几里得算法(辗转相除法):public class HelloWorld {
public static int gcd(int a , int b){
if (b == 0)
return a;
int r = a %
转载
2023-09-01 10:44:26
87阅读
一、前文回顾在上一篇文章中,我们探究了一个RPC框架最基本的一些技术,并且开始写了服务端的注册发现相关的代码,今天我们继续之前的进度往后。既然已经将服务暴露出去了,接下来我们要考虑的是如何通过网络的形式将其传输出去。二、网络模块开发客户端和服务端之间想要通信必然需要一个媒介,所以我们需要为我们的RPC框架搭建一个网络模块。那么提到网络编程那么就有以下几个方案:我们最先想到的是Java中的Socke
转载
2023-07-19 12:36:43
251阅读