逆向工程

IDEA下mybatis逆向工程

喜你入骨 提交于 2020-03-01 16:47:14
pom文件下引入的插件 <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <configurationFile>${basedir}/src/main/resources/generatorConfig.xml </configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> <!--这里数据版本要和你引入的一致--> </dependency> </dependencies> </plugin> </plugins> resources下的 generatorConfig.xml <?xml version="1.0" encoding=

基于虚拟机的软件保护技术

别说谁变了你拦得住时间么 提交于 2020-03-01 01:44:35
本文并不打算对vmprotect或其它某款软件安全套件进行深入讨论,而着眼于研究基于虚拟机的软件保护技术的起源、思想和实现。 现有软件保护技术概述 传统的软件保护技术,根据针对对象不同,可分为反静态调试和反动态调试两大类。反静态调试主要针对对象为反汇编器。反汇编器通过面向特定平台的反汇编引擎(如PC平台即为X86反汇编引擎),将编译器生成的二进制文件还原成汇编代码,有经验的逆向工程师可以据此还原出算法等核心运算机制。反静态调试主要是通过特定区段加密等方式,将核心信息保护起来,只在运行期才通过解密等算法动态还原,阻碍反汇编器静态地将二进制文件还原成汇编码。 反动态调试主要针对对象为调试器,由于经过静态加密的二进制码最终必须解密才能执行,因此通过Ollydbg等动态调试器仍然可以加以查看,反动态调试通过检测调试器和屏蔽调试端口等各种反调试技术阻止逆向工程师通过调试器跟踪软件进程的运行情况,使得软件的运行时状况始终保持处于黑盒状态。 被动型软件保护概念上述两种保护方案均采取主动出击的策略,意图“御敌于国之外”,中心思想是一个“挡字”,阻止逆向工程是窥视软件内部机理,但盾与矛的对抗总是无休止的,并没有任何一种主动型软件保护手段能真正彻底阻断逆向工程,因此另一种“以人为本”的被动型软件保护技术开始走向斗争舞台的中央。 被动型软件保护手段基于一个假设

2019-2020-1学期 20192417 《网络空间安全专业导论》第十周学习总结

倖福魔咒の 提交于 2020-02-29 07:43:28
《网络空间安全导论》第4、7(2)章 第4章 系统安全 4.1 操作系统概述 计算机操作系统的功能 包括:进程管理、内存管理、设备管理、文件管理、用户接口。 4.2 操作系统安全 4.2.1 操作系统的安全威胁与脆弱性 操作系统的 安全威胁 包括:非法用户或假冒用户入侵系统、数据被非法破坏或者数据丢失、不明病毒的破坏和黑客入侵、操作系统运行不正常。 操作系统的 脆弱性 包括:操作系统的远程调用和系统漏洞和进程管理体系存在问题。 操作系统的 常见漏洞 包括:空口令或弱口令、默认共享密钥、系统组件漏洞和应用程序漏洞。 4.2.2 操作系统中常见的安全保护机制 进程隔离和内存保护 为了实现进程隔离与内存保护的机制,计算机操作系统中加入了 内存管理单元模块(MMU) ,程序运行时,由MMU模块负责分配进程运行所需的内存空间。 运行模式 现代CPU的运行模式通常分为内核模式与用户模式两种模式 1) 内核模式 :也称为特权模式,在Intel x86系列中,称为核心层(Ring 0) 。 2) 用户模式 :也称为非特权模式,或者用户层(Ring 3)。 用户权限控制 当前常用的操作系统通常将用户权限分为 系统管理员用户、普通用户、访客用户 等不同权限级别。 文件系统访问控制 典型的文件操作权限控制是对文件的读、写和执行三方面权限进行限制,分别对应对文件进行读取、修改和运行的操作。 4.2.3

IDA使用初探-1.启动IDA

拜拜、爱过 提交于 2020-02-29 07:10:22
在传统的软件开发模型中,通过编译器、汇编器和链接器中的一个或几个创建可执行程序。为了回溯编程过程(对程序进行逆向工程),使用各种工具撤销汇编和编译过程,这些工具就叫做反汇编器和反编译器。反汇编器撤销汇编过程,可以得到汇编语言形式的输出结果;反编译器则以汇编语言甚至是机器语言作为输入,将高级语言结果输出。 但是反编译有几点困难至今还没有完美解决:编译过程造成损失;编译属于多对多操作;反编译非常依赖语言和库。 反汇编 算法 :线性扫描(linear sweep)和递归下降(recursive descent)两种主要的反汇编算法。 线性扫描:反汇编从第一个代码段的第一个字节开始,以线性模式扫描整个代码段,逐条反汇编每条指令,直到遍历全部字节。此方法对于长度固定的指令集(MIPS)反汇编会更加容易,因为可以方便的的定位到随后的指令。缺点就是无法正确的将嵌在代码中的数据分离出。 递归下降:根据一条指令是否被另一条指令引用来决定是否对其进行反汇编。 交互式反汇编器专业版,常常称其为IDA Pro,属于递归下降反汇编器。上周看书有一些心得,在这里一篇篇分享一下。 1.为了准备逆向用的实例,先用VC生成一个release版的Hello World。 1 #include <windows.h> 2 INT WINAPI WinMain(HINSTANCE hInstance, 3

MyBaits逆向工程

流过昼夜 提交于 2020-02-25 00:52:46
目录 1、逆向工程 2、步骤 2.1 pom配置 2.2 generatorConfig.xml 2.3 开始生成 1、逆向工程 数据库表生成Java类,无需安装插件 2、步骤 最好单独创建一个工程用于生成Java类,因为生成的类可能会覆盖你的原有类。 2.1 pom配置 < ! -- 依赖Mybatis核心包 -- > < dependencies > < dependency > < groupId > org . mybatis < / groupId > < artifactId > mybatis < / artifactId > < version > 3.2 .8 < / version > < / dependency > < / dependencies > < ! -- 控制maven在构建过程中相关配置 -- > < build > < ! -- 构建过程中用到的插件 -- > < plugins > < ! -- 具体的插件,逆向工程的操作是以构建过程中插件形式出现的 -- > < plugin > < groupId > org . mybatis . generator < / groupId > < artifactId > mybatis - generator - maven - plugin < / artifactId > < version

还在用逆向工程?太Low了,试试通用Mapper吧!

房东的猫 提交于 2020-02-22 15:53:53
什么是通用Mapper? 通用mapper 可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查。 什么是通用mapper,一句话简单说,它就是个辅助mybatis极简单表开发的组件。它不是为了替代mybatis,而是让mybatis的开发更方便。 可以按照自己的需要选择通用方法,还能很方便的开发自己的通用方法。 为什么要用通用Mapper? 原生Mybatis的痛点 1、mapper.xml文件里有大量的sql,当数据库表字段变动,配置文件就要修改 2、需要自己实现sql分页,select * from table where . . . limit 1,3 自己手写分页,除了传参page、pageSize,还需要返回条目总数count。 3、数据库可移植性差:如果项目更换数据库,比如oracle-->mysql,mapper.xml中的sql要重新写,因为Oracle的PLSQL 和mysql 支持的函数是不同的。 4、生成的代码量过大。 5、批量操作,批量插入,批量更新,需要自写。 如何使用通用Mapper? 1、导入依赖/jar包 通用Mapper是配合MyBatis使用的,请确保你已经是MyBatis的环境。 <!-- 通用Mapper --> <dependency> <groupId>com.github.abel533</groupId>

[译]如何开始CTF

醉酒当歌 提交于 2020-02-19 07:36:22
[译]如何开始CTF Steve Vittitoe 发表于 2014.6.9 译者:wngg 英语水平很差,翻译纯粹是为了兴趣和练习英语。 如果我的翻译能帮到您,那真是太好了。 有不好的地方希望大佬们可以帮我指出来,多谢! 原文地址: How to Get Started in CTF 参考资料: CTF Wiki 原文: 在过去的两周里,我分析了第22届DEFCON大赛里的两道题: “shitsco” 和 “nonameyet” ,感谢每一条的评论和提问,其中被提过最多的问题是“如何开始CTF?”。不久前,我也问过自己同样的问题。最简单的方法就是注册一个CTF平台,比如 CSAW 、 Pico CTF 、 Microcorruption 或者其他在 此页 内的网站。通过练习、耐心和奉献,你的能力就会一天天提高。 如果你平时想做一些题目, 这里 存了大多数比赛的题目。这些题目通常会有许多不同级别,对于最简单难度的题目也不能大意,难不难取决于你的技术。比如你擅长取证分析(forensics)题但是对密码攻击(crypto)题不太熟,那么你可能取证分析题得到分数很多而密码攻击题得到的分很少。对于CTF出题者来说各自也有擅长的领域,这也是难以评定CTF难度的原因之一。 如果你已经自己尝试过简单的题目并且还在努力着,那么你很有可能自学成功。CTF竞赛通常注重一下技能:逆向工程

IDEA之MyBatis逆向工程

末鹿安然 提交于 2020-02-17 06:39:48
逆向工程:通过数据库中已存在数据表,反向生成java中的实体类(生成对应的ORM持久层代码) 1.创建项目 代码生成器是项目的一个工具组件。 创建不使用模板的maven项目。 引入逆向工程的依赖。 mysql-connector-java mybatis-generator-core <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.17</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.4.0</version> </dependency> 2.配置生成规则 描述数据库中的表

Mybatis Generator逆向工程

a 夏天 提交于 2020-02-17 06:18:27
配置文件config.properties jdbc . driverClass = com . mysql . cj . jdbc . Driver jdbc . url = jdbc : mysql : / / localhost : 3306 / user_center ? nullCatalogMeansCurrent = true jdbc . user = root jdbc . password = root123 project_src = src / main / java project_mapper_xml = src / main / resources / sqlmapper < ? xml version = "1.0" encoding = "UTF-8" ? > < ! DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > < generatorConfiguration > < ! -- 引入配置文件 -- > < properties resource = "db.properties

《逆向工程核心原理》学习笔记4 PE文件学习——PE头总结

限于喜欢 提交于 2020-02-16 14:38:39
《逆向工程核心原理》学习笔记4 PE文件学习——PE头总结 1.DOS头 typedef struct _IMAGE_DOS_HEADER //DOS头 { WORD e_magic; //DOS signature :4D5A ("MZ",是确定的值, 被称为DOS签名,如果值被改变,程序无法运行) WORD e_cblp; WORD e_cp; WORD e_crlc; WORD e_cparhdr; WORD e_minalloc; WORD e_maxalloc; WORD e_ss; WORD e_sp; WORD e_csum; WORD e_ip; WORD e_cs;NT WORD e_lfarlc; WORD e_ovno; WORD e_res[4]; WORD e_oemid; WORD e_oeminfo; WORD e_res2[10]; WORD e_lfanew; //NT头的偏移,offset to NT header,修改后程序 无法正常运行 } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; 2.DOS存根 由代码和数据混合而成,在DOS环境下运行,可以用debug.exe运行(window10下用DOSBOX+debug)。 3.NT头 typedef struct _IMAGE_NT_HEADERS //NT头 {