- Dex、Smali、Class、Java、Jar之间的相互转换
布道课堂
Dex、Smali、Class、Java、Jar之间的相互转换-分析Android底层代码工具工具作用javacjava------>classddxclass------>dexbaksmalidex------>smalismalismali------>dexdex2jardex------>jar(class的压缩包)apktoolapk------>smaliAndroid源代码从编译到
- [免费专栏] Android安全之静态逆向APK应用浅析「手动注入smali」+「IDA Pro静态分析so文件」+「IDA Pro基础使用讲解」
橙留香Park
网络安全渗透测试信息安全
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大少走了弯路,也就错过了风景,无论如何,感谢经历转移发布平台通知:将不再在CSDN博客发布新文章,敬请移步知识星球感谢大家一直以来对我CSDN博客的关注和支持,但是我决定不再在这里发布新文章了。为了给大家提供更好的服务和更深入的交流,我开设了一个知识星球,内部将会提供更深入、更实用的技术文章,这些文章将更有价值
- PowerShell3.0中,所有的命令
weixin_33976072
shellui
Get-Command*>>cmd.txtCommandTypeNameModuleName-------------------------Alias%->ForEach-ObjectAlias?->Where-ObjectAliasac->Add-ContentAliasAdd-ProvisionedAppxPackageDismAliasApply-WindowsUnattendDismAl
- 安卓学习笔记之二:APKtool工具实现反编译-编译-签名全过程
manmanbab
智能手机学习笔记
APKTool介绍APKTool是一个开源的、跨平台的反编译、回编译Android应用程序的工具。它能够将APK文件解压并还原成Android应用程序的资源文件和Smali代码,还能将修改后的资源文件和Smali代码重新打包成APK文件。APKTool是Android应用程序开发和逆向开发的重要工具之一,它能够帮助开发者对APK文件进行修改、分析和定制,也能够帮助安全研究人员和黑客对应用程序进行逆
- Android反编译之模拟重新打包
顺_967d
Baksmali:https://github.com/JesusFreke/smaliApktool:https://ibotpeaches.github.io/Apktool/dex2jar:https://sourceforge.net/projects/dex2jar/这几个工具,我注意到,大家基本上用的最多的是Baksmali,不过我使用的时候,发现其使用方法有了简单变化,所以简单记录一
- Android逆向基础1(Smali语法入门)
enj0y1
简单的说,Smali就是DalvikVM内部执行的核心代码。1.Smali的基本类型B---byteC---charD---doubleF---floatI---intJ---longS---shortV---voidZ---boolean[XXX---array(数组)Lxxx/yyy---object(对象)2.函数的定义函数的定义一般为:Func-Name(Para-Type1Para-Ty
- 逆向工程工具集
初见soulmate
1.安卓根据java代码查看smali代码:AS的java2smali插件逆向新手,记录一下相关工具,持续更新...
- Apktool 下载、安装和使用
给我一支白沙
Apktool简介用于反编译Androidapk,可以将应用中的资源提取出来,也可以在修改资源文件后重新打包。smali调试环境要求安装java1.8以上命令行运行java-version返回版本大于1.8如果没有,请安装java1.8下载与安装下载apktool_x.x.x.jar到本地官网下载或者镜像下载重命名下载的apktool_x.x.x.jar,改名为apktool.jar下载脚本并配置
- 空间转录组文章精析-第一期 黑色素瘤遗传异质性
我爱工作_工作使我快乐
本期,我们一起来分析一下2018年发表在CancerResearch(2019年该杂志最新影响因子为8.378)上的一篇由瑞典皇家理工学院发表的关于皮肤恶性黑色素瘤的文章。文章题目:SpatiallyResolvedTranscriptomicsEnablesDissectionofGeneticHeterogeneityinStageIIICutaneousMalignantMelanoma空间
- 2020-12-03 SQL数据库的列类型
今晚打老鼠儿
数值类型类型描述占位/字节tinyint十分小的数据1smalint较小的数据2mediumint中等大小的数据3int标准的整数4bigint较大的数据8float单精度浮点数4double双精度浮点数8decimal字符串形式的浮点数精度/2+1字符串类型类型描述长度char字符串0~255varchar可变字符串0~65535tinytext微型文本2^8-1text文本串2^16-1日期类
- Android逆向之旅。
銨靜菂等芐紶
Androidandroid
转载自品略图书馆http://www.pinlue.com/article/2020/03/1301/0610022114445.html一、前言今天总算迎来了破解系列的最后一篇文章了,之前的两篇文章分别为:第一篇:如何使用Eclipse动态调试smali源码第二篇:如何使用IDA动态调试SO文件现在要说的就是最后一篇了,如何应对Android中一些加固apk安全防护,在之前的两篇破解文章中,我们
- Android逆向之旅---动态方式破解apk终极篇(加固apk破解方式)
chupu2979
一、前言今天总算迎来了破解系列的最后一篇文章了,之前的两篇文章分别为:第一篇:如何使用Eclipse动态调试smali源码第二篇:如何使用IDA动态调试SO文件现在要说的就是最后一篇了,如何应对Android中一些加固apk安全防护,在之前的两篇破解文章中,我们可以看到一个是针对于Java层的破解,一个是针对于native层的破解,还没有涉及到apk的加固,那么今天就要来介绍一下如何应对现在市场中
- Android逆向之旅---动态方式破解apk终极篇 加固apk破解方式
是喝醉了吗
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!一、前言今天总算迎来了破解系列的最后一篇文章了,之前的两篇文章分别为:第一篇:如何使用Eclipse动态调试smali源码第二篇:如何使用IDA动态调试SO文件现在要说的就是最后一篇了,如何应对Android中一
- smali代码结构解析
oliveira-time
开发语言java
一、开头(类的声明)1、声明一个类继承自某个类java代码如下publicclassMainActivityextendsAppCompatActivity对应的smali代码如下,解析见每行注释(smali注释使用#):.classpublicLcom/ylw/yhds/activity/MainActivity;#声明类,其中Lcom/ylw/yhds/activity/MainActivit
- Android 逆向笔记 —— 一个简单 CrackMe 的逆向总结
路遥在路上
无意中在看雪看到一个简单的CrackMe应用,正好就着这个例子总结一下逆向过程中基本的常用工具的使用,和一些简单的常用套路。感兴趣的同学可以照着尝试操作一下,过程还是很简单的。APK我已上传至Github,下载地址。首先安装一下这个应用,界面如下所示:要求就是通过注册。爆破的方法很多,大致可以归为三类,第一种是直接修改smali代码绕过注册,第二种是捋清注册流程,得到正确的注册码。第三种是hook
- 安卓逆向入门笔记——smali基础
biao197
编程&逆向android笔记
smali基础语法dalvik字节码1、先来了解一下dalvik虚拟机:dalvik虚拟机是Android5.0以前用于运行安卓应用的虚拟机,从Android4.4开始,Google开始引入了全新的虚拟机ART(AndroidRuntime),直到Android5.0开始ART虚拟机就替代了dalvik虚拟机。既然dalvik虚拟机被ART虚拟机替代了,那我们还有学的必要吗?ART是向下兼容的,A
- Android逆向笔记之AndroidKiller与Android Studio的使用
aijia1857
前言:书本中对crackme02.apk的破解是分析关键词进行破解的,而本文使用另外的Smali分析方式,对样本进行分析。样本:《Android软件安全与逆向分析》crackme02.apk工具:AndroidKillerv1.3.1.0(AK)&&AndroidStudio2.2.3(AS)语言:Java,Smali目的:Smali代码分析之前的准备工作一、样本反编译二、在AS下打开反编译出来的
- Apktool工具的下载安装和简单使用;反编译and解包打包;
Sciurdae
CTF学习笔记网络安全安全android
文章目录简介工具下载解包打包签名简介apktool"apktool"是一个用于反编译和重新编译AndroidAPK文件的开源工具,可以将APK文件反编译成可读的Smali代码或原始的XML布局文件。apktool需要java环境支持,请先安装好java环境,可以使用java-version,java版本尽量在1.8以上;工具下载下载地址:官网按照官方教程安装~解包命令行输入:apktooldbar
- Android Studio(3.6.2版本)安装 java2smali 插件,java2smali 插件的使用方法简述
oliveira-time
androidstudioandroidide
一、AndroidStudio(3.6.2版本)安装java2smali插件1、左上角File—>Setting,如下图2、Setting界面中:点击Plugins—>选择右侧上方Marketplace—>搜索栏输入java2smali,如下图3、点击Install按钮—>点击弹窗Accept按钮,如下图4、等待安装完成后出现RestartIDE按钮—>点击RestartIDE按钮—>点击弹窗Re
- android 逆向工程(待续)
yangzex
逆向软件安全
目录工具类IDASegmentregisters(shift+F8)反调试利用IO重定向来绕过反调试EBPF使用eBPF完成安卓ApphookxHookUNIDBG补环境文件结构ELFsection和segment的关系.dynamic段.init和.init_array段花指令花指令5要素Smali基础打包工具类IDASegmentregisters(shift+F8)当IDA遇到改变段寄存器的
- Android程序的签名保护及绕过方法
火龙果研究院
安卓开发安卓开发
转自:https://blog.csdn.net/wulianghuan/article/details/22497621随着Android市场的扩大,各类盗版、破解、打包党纷纷涌现,其使用的手法无非是apk_>smali->修改代码->重打包签名,为对抗此类技术,广大程序员挖掘了Android平台特有的保护技术:签名校验1、JAVA代码本地签名校验Android要求安装到手机上的APK文件必须有
- 破解app思路
Python9724
javascript开发语言ecmascript
1.会看smali代码逻辑一.快速定位关键代码1.分析流程搜索特征字符串搜索关键api通过方法名来判断方法的功能2.快速定位关键代码反编译APK程序AndroidManifest.xml=>包名/系统版本/组件程序的主activity(程序入口界面)每个Android程序有日只有一个主Activity分析程序的执行流程需重点关注的applicationapplication执行时间授权验证3.定位
- 【笔记】Smali语法
疼老婆会发达
笔记smali汇编
Smali语法Smali是一种汇编语言,通常用于Android应用程序的反汇编和修改。Smali代码是Dalvik虚拟机指令的文本表示形式。以下是一些常见的Smali语法元素:1.基本结构:Smali文件是文本文件,通常以.smali扩展名结尾。每个Smali文件对应一个类,并以类路径作为文件名。例如,类com.example.MyClass的Smali文件可能是com/example/MyCla
- 关于回编译 First Type is not attr
小慕汐
image.png要修改public.xml里面比attr值要小的,如image.png然后再修改smali里面的值
- 启xin宝app的token算法破解——逆向篇(二)
吾爱小白
启xin宝app的token算法破解——抓包分析篇(一)文章已经对该app进行了抓包分析,现在继续对它进行逆向。对于一个app而言,我们要逆向app,需要知道什么呢?逆向工具Java基础,甚至c和汇编基础加固类型和脱壳工具安卓开发基础对安卓系统的认知对xposed的认知smali基础以上这些是必须了解甚至掌握的,爬虫逆向路上越走越远了。回归正题,该app是怎样一种app呢??如何去查看app是否加
- 安卓逆向入门——smali语法(上)
送你一颗星星
安卓逆向androidjava爬虫开发语言
smali语法部分已经完结,感兴趣的可以访问下面这个链接阅读下一部分:安卓逆向入门——smali语法(下)_不会算法的小白的博客-CSDN博客smali和Java基本数据类型对比smalijavaBbyteSshortIintJlongFfloatDdoubleCcharZbooleanVvoid[数组L+全类名路径用/分割object注释使用`#`表示类声明.class+权限修饰符+类名;#以分
- 安卓逆向入门——smali语法(下)
送你一颗星星
安卓逆向开发语言android爬虫java
smali语法部分已经完结,感兴趣的可以访问下面这个链接阅读上一部分:安卓逆向入门——smali语法(上)_不会算法的小白的博客-CSDN博客创建对象对象的创建分多步进行:#声明实例new-instance+变量名,对象全包名路径;#调用构造方法(如果构造方法内还定义了成员变量,那么在调用之前需要提前声明,然后在invoke的时候当作参数一并传入)invoke-direct{变量名},对象全包名路
- NP管理器V3.0.18之第三方MT管理器VIP版
syx594
注意事项:常见闪退原因Root的手机闪退概率高Root了的手机不给root权限有xp环境的容易闪退没有网络手机开了VPN或者代理功能简介:主要是对Apk、Dex、Jar、Smali、Pdf、视频和音频文件的简单应用。Dex、Jar、Smali文件的相互转换;Dex文件合并、分割;Apk、dex、jar混淆和字符串加密;Apk签名、共存、去除签名校验、对话框取消、去除VPN/代理检测;Res资源混淆
- 吴恩达Coursera, 机器学习专项课程, Machine Learning:Supervised Machine Learning: Regression and Classification第三...
ZhemgLee
机器学习人工智能
Practicequiz:Classificationwithlogisticregression第1个问题:Whichisanexampleofaclassificationtask?【正确】Basedonthesizeofeachtumor,determineifeachtumorismalignant(cancerous)ornot.Basedonapatient'sbloodpressur
- apk反编译,注入smali代码,编译及重签名。
不见不散.
反编译apkwindowsjdk
apk反编译,注入代码,编译及重签名。下载apktool链接:https://pan.baidu.com/s/12eHW1vFqZVKOEmEb2I-sXA提取码:mrbq以下的apktool_2.3.1均更改为2.4.1(因为2.3.1在build的时候会出错,可能是jdk版本不对,我这里的jdk版本是14.0.2)解压下载的文件,得到如下两个文件:在以上解压的目录中输入cmd,回车,进入命令行
- 多线程编程之join()方法
周凡杨
javaJOIN多线程编程线程
现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?
Java实现过程如下:
public class T1 implements Runnabl
- java中switch的使用
bingyingao
javaenumbreakcontinue
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。
switch (timeType) {
case ProdtransTimeTypeEnum.DAILY:
break;
default:
br
- hive having count 不能去重
daizj
hive去重having count计数
hive在使用having count()是,不支持去重计数
hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;
FAILED: SemanticExcep
- WebSphere对JSP的缓存
周凡杨
WAS JSP 缓存
对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。
现服务
- 设计模式总结
朱辉辉33
java设计模式
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
&n
- 实例:供应商管理报表需求调研报告
老A不折腾
finereport报表系统报表软件信息化选型
引言
随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标
1、通过报表为采购决策提供数据分析与支撑
2、对供应商进行综合评估以及管理,合理管理和
- mysql
林鹤霄
转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@centos var]# service mysql
- Linux下多线程堆栈查看工具(pstree、ps、pstack)
aigo
linux
原文:http://blog.csdn.net/yfkiss/article/details/6729364
1. pstree
pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) &n
- html input与textarea 值改变事件
alxw4616
JavaScript
// 文本输入框(input) 文本域(textarea)值改变事件
// onpropertychange(IE) oninput(w3c)
$('input,textarea').on('propertychange input', function(event) {
console.log($(this).val())
});
- String类的基本用法
百合不是茶
String
字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' };
String newByteString = new String(by);
1,length() 获取字符串的长度
&nbs
- JDK1.5 Semaphore实例
bijian1013
javathreadjava多线程Semaphore
Semaphore类
一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
S
- 使用GZip来压缩传输量
bijian1013
javaGZip
启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。
PJL Compressi
- 【Java范型三】Java范型详解之范型类型通配符
bit1129
java
定义如下一个简单的范型类,
package com.tom.lang.generics;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value = value;
}
}
- 【Hadoop十二】HDFS常用命令
bit1129
hadoop
1. 修改日志文件查看器
hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml
cat edits.xml
修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志
2. fsimage查看HDFS中的块信息等
&nb
- 怎样区别nginx中rewrite时break和last
ronin47
在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。
location /
{
proxy_pass http://test;
- java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class CombinationToSum {
/*
第21 题
2010 年中兴面试题
编程求解:
输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,
使其和等
- eclipse svn 帐号密码修改问题
开窍的石头
eclipseSVNsvn帐号密码修改
问题描述:
Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。
解决思路:
删除subclipse记录的帐号、密码信息,重新输入
- [电子商务]传统商务活动与互联网的结合
comsci
电子商务
某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。
如何避免销售量和利润率增加的
- java 解析 properties-使用 Properties-可以指定配置文件路径
cuityang
javaproperties
#mq
xdr.mq.url=tcp://192.168.100.15:61618;
import java.io.IOException;
import java.util.Properties;
public class Test {
String conf = "log4j.properties";
private static final
- Java核心问题集锦
darrenzhu
java基础核心难点
注意,这里的参考文章基本来自Effective Java和jdk源码
1)ConcurrentModificationException
当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是:
1)用listIterator, 它支持在遍历的过程中修改元素,
2)不用listIterator, new一个
- 1分钟学会Markdown语法
dcj3sjt126com
markdown
markdown 简明语法 基本符号
*,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号
空白行表示另起一个段落
`是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签
换行
单一段落( <p>) 用一个空白行
连续两个空格 会变成一个 <br>
连续3个符号,然后是空行
- Gson使用二(GsonBuilder)
eksliang
jsongsonGsonBuilder
转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述
GsonBuilder用来定制java跟json之间的转换格式
二.基本使用
实体测试类:
温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField
- 报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList
gundumw100
android
有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f
- JavaWeb之JSP指令
ihuning
javaweb
要点
JSP指令简介
page指令
include指令
JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
JSP指令的基本语法格式:
<%@ 指令 属性名="
- mac上编译FFmpeg跑ios
啸笑天
ffmpeg
1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装yasm-1.2.0
curl http://www.tortall.net/projects/yasm
- sql mysql oracle中字符串连接
macroli
oraclesqlmysqlSQL Server
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CON
- Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate
qiaolevip
学习永无止境每天进步一点点git纵观千象
// 报错如下:
$ git pull origin master
fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce
rtificate
// 原因:
由于git最新版默认使用ssl安全验证,但是我们是使用的git未设
- windows命令行设置wifi
surfingll
windowswifi笔记本wifi
还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么
教你命令行设置 笔记本电脑wifi:
1、开启wifi命令
netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456
netsh wlan start hostednetwork
pause
其中pause是等待输入,可以去掉
2、
- Linux(Ubuntu)下安装sysv-rc-conf
wmlJava
linuxubuntusysv-rc-conf
安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
背景知识
sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf
- svn切换环境,重发布应用多了javaee标签前缀
zengshaotao
javaee
更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。
然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。
检出