- Re 花指令学习
0e1G7
课程笔记经验分享学习汇编逆向
概念花指令又名垃圾代码、脏字节,英文名是junkcode。花指令就是在不影响程序运行的情况下,往真实代码中插入一些垃圾代码,从而影响反汇编器的正常运行;或是起到干扰逆向分析人员的静态分析,增加分析难度和分析时间。总结就是企图隐藏掉不想被逆向工程的代码块(或其它功能)的一种方法,在真实代码中插入一些垃圾代码的同时还保证原有程序的正确执行,而程序无法很好地反编译,难以理解程序内容,达到混淆视听的效果。
- AST混淆与解混淆笔记:二项式转为花指令
码王吴彦祖
AST解混淆笔记笔记javascriptast解混淆
本文主要是作者记笔记为主,温故而知新,记录混淆和解混淆的代码,后期可能会更新文章细节以以下代码为例:functiontest(a,b){constc="123";a=a+1//aa=a+2a=a*1234a=a.toString()a=a.substring(0,3)b=a+"00"returnb;}test(2)console.log(test(1))首先导入库constfs=require('
- 代码混淆
水灵芳蕥
代码混淆(Obfuscatedcode)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器。将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符
- 反调试技术总结.
happylife1527
汇编虚拟机加密解密apipointers
最近学习反调试技术,总结了网络上的一些反调试技术,文章中的代码均通过调试,在OllyDbg中测试通过,同时谢谢看雪的《加密与解密》第三版测试软件:IDA最新5.5,使用5.4OllyDbg最新2.0,结合v1.10(汉化第二版)一.抗静态分析技术静态分析是指从反汇编出来的程序清单上分析程序流程,反静态分析主要是指扰乱汇编代码可读性。1.花指令在原程序中添加一些汇编指令,添加后不影响原程序的正常功能
- android 逆向工程(待续)
yangzex
逆向软件安全
目录工具类IDASegmentregisters(shift+F8)反调试利用IO重定向来绕过反调试EBPF使用eBPF完成安卓ApphookxHookUNIDBG补环境文件结构ELFsection和segment的关系.dynamic段.init和.init_array段花指令花指令5要素Smali基础打包工具类IDASegmentregisters(shift+F8)当IDA遇到改变段寄存器的
- 极客大挑战2023 Reverse wp
Sciurdae
CTF比赛WP服务器数据库前端CTFReverse学习
文章目录@[toc]shiftjmp点击就送的逆向题幸运数字flower-or-tea小黄鸭mySelfeasymath听说cpp很难?砍树浪漫至死不渝是男人就来扎针ezandroidshiftjmp64bit的ELF文件,IDA打开考察花指令去除、将E9nop掉EXP:enc=[0x53,0x58,0x41,0x78,0x53,0x36,0x6A,0x64,0x38,0x64,0x6F,0x54
- php一句话木马免杀
order libra
php开发语言网络安全安全web安全安全威胁分析
php一句话木马免杀针对于php一句话木马做免杀:利用php动态函数的特性,将危险函数拆分成字符,最终使用字符串拼接的方式,然后重新拼接,后加括号执行代码,并且可以使用花指令进行包装,如无限if(1=1)套接,以此来做伪装绕过,达成免杀assert()如果过滤eval()函数时,可以考虑尝试assert()函数assert()会将字符串当做PHP代码来执行assert()只能执行单条PHP语句。a
- [GFCTF 2021]wordy 编写去花IDAPYTHON
双层小牛堡
逆向jvm
首先查壳发现没有东西然后放入ida发现没有main并且软件混乱发现这里1144的地方出错IDA无法识别数据报错内容是EBFF机器码这里看了wp知道是很常见的花指令所以我们现在开始去花这里因为我们需要取出EBFF下面的地址也都是EBFF所以工作量大使用IDApython脚本即可start=0x1135end=0x3100foriinrange(start,end):ifget_wide_byte(i
- Android Proguard 混淆详解
青雨xh
Android基础详解androidjava
1.混淆概述(1).概念混淆维基百科的解释代码混淆(Obfuscatedcode)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。(2).目的混淆的目的是为了加大反编译的成本,但是并不能彻底防止反编译,比如AndroidApp反编译后虽然代码很难读懂,但依旧是可以读懂的,只是比较费劲;相比较java语言写的程序,C/C++程序反编译后就更难读懂了。(3).优
- NewStarCTF2023 Week3 Reverse 花 wp
Sciurdae
CTF比赛WP学习CTFReverse
题目往下拖,就一个jz和jnz互补跳转的花指令将E8改为90,修复为代码,再P一下反编译其实已经出结果了,Str是key,enc里面是密文,用了一个RC4加密。写EXP:defrc4_decrypt(ciphertext,key):#初始化S-boxS=list(range(256))j=0foriinrange(256):j=(j+S[i]+key[i%len(key)])%256S[i],S[
- IDA7.5pro IDAPython脚本整理
云舒_YunShu
python开发语言
脚本目录取数值dump内存去除jmp花指令取数值#起始地址addrStart=0x6020c0#终止地址addrEnd=0x60213clist1=[]#>>2是除以4取整数foriinrange((addrEnd-addr)>>2):list1.append(idc.get_wide_dword(addr+4*i))print(list1)dump内存importidc_bc695asidcde
- 【逆向学习】花指令的去除
Wanglpl
Re学习pythonc语言
花指令我在做逆向的题目的时候,经常会遇到需要自己将一堆乱码用IDA分析构建成函数,但函数却无法仍然无法使用f5进行编译,就是因为存在花指令的缘故。花指令经常被作为一种手段来增加代码分析的难度。我就打算记录一下几种解决花指令的方法。手动nop我们在用IDA用C构建函数时,其实很容易发现花指令,只要将这些花指令NOP掉就可以了。这个标红的地方很明显就是花指令。到那个位置,把它NOP掉main函数就成功
- CTF逆向Reverse 花指令介绍 and NSSCTF靶场入门题目复现
Sciurdae
网络安全汇编c语言安全系统安全
文章目录前言简介简单花指令可执行花指令不可执行花指令原理:反汇编算法的设计缺陷关于花指令的构造永恒跳转最简单的jmp指令多层跳转其它构造形式jnz和jz互补跳转跳转指令构造花指令call&ret构造花指令一点话CTF练习[HNCTF2022WEEK2]e@sy_flower[NSSRound#3Team]jump_by_jump[NSSRound#3Team]jump_by_jump_reveng
- python爬虫处理js混淆加密_python爬虫之破解javascript-obfuscator的混淆加密
weixin_39930711
接上一篇有关前端加密达到反爬的文章,是不是觉得用了javascript-obfuscator就很安全了,那还真不一定啊,还是那句,反爬与反反爬一直在斗争,没有谁能绝对的压制另一方,只有使用者技术的高低。以下就是一个大神的针对javascript-obfuscator库的破解。死代码与花指令在开始之前,我们先了解一下这种「在代码中插入大量无用代码以混淆视听」的混淆方式吧。这种混淆方式有两种叫法,或者
- java代码混淆,程序加密推荐 java授权 支持JDK16
非著名架构师
混淆技术知识文档java混淆java加密java字符串加密java授权JDK16
java代码可以反编译,特别是放在客户端的程序很用被剽窃,盗用.保护程序一般都有以下几个方法:1、将class文件加密,这个是最安全的,但也费事儿,因为要重写classloader来解密class文件;2、使用花指令,使得class文件不能反编译(利用反编译工具漏洞);安全性一般,还是有花指令破解器;3、代码混淆,提高代码阅读成本;简单易操作,一般采用这种或者与其它方式结合以上几种方法都需要自己花
- NSSCTF RE [NSSRound#3 Team]jump_by_jump_revenge
杨天yangtian
网络安全
##花指令第一次尝试做花指令的题目ida反汇编出现jumpout(xxx)判断是花指令找到花指令(标红)选中按D转化为数据,再将数据改成0x90h(即nop)再按c转数据化为nop然后按P(重新分析)+F5写个脚本逆回去就行了
- 花指令相关-[GFCTF2021]-wordy,[NSSRound#3 Team]jump_by_jump题解
cool breeze☆
网络安全
目录[GFCTF2021]-wordy[NSSRound#3Team]jump_by_jump学到的点:[GFCTF2021]-wordy下载附件,查壳,发现没壳,接着拖入到da中打开附件,找主函数发现无法编译,考虑是花指令可以看到标红的这段有一段代码loc_1144:jmpshortnearptrloc_1144+1这串代码并没有实际的作用,看了很多大佬的wp才知道这是一种常见的花指令。把这段代
- 木马免杀(篇三)静态免杀方法
Goodric
免杀专题木马免杀静态加壳
紧接上一篇,是通过cs生成shellcode并直接用python调用动态链接库执行shellcode。生成后的exe文件未进行任何处理。现在学习一些可以绕过静态免杀的方法。即将文件上传到目标不会被杀软查杀,但这只是静态方面。动态免杀方面还涉及到很多东西,像进程注入手段。使用加花器花指令(junkcode,垃圾代码)加花,对抗反汇编引擎。在真实代码中插入一些垃圾代码,不影响程序逻辑,保证原有程序的正
- Python脚本加密保护混淆加密实例
未来无限
Python语言python混淆加密
混淆加密混淆利用花指令和代码非等价变形等技术,将程序的代码转换成一种功能上等价但是难于阅读和理解的代码,可充分干扰静态分析。为了增加代码阅读的难度,源代码的混淆非常必要。方法一混淆网站一个在线的Python代码混淆网站https://pyob.oxyry.com/方法二第三方库使用Python编写的程序来说,我们可以使用第三方库"pyminifier"来混淆加密Python代码步骤:安装pipin
- vm虚拟机保护技术简介&EzMachine例题-vm逆向分析
Sciurdae
CTF学习笔记1024程序员节网络安全CTF学习
文章目录前言0x1虚拟机保护技术原理0x1A关于调用约定0x1BHandler0x1C指令0x2vm虚拟机逆向实战[GKCTF2020]EzMachine题目分析,花指令去除Handler分析脚本编写前言关于虚拟机逆向的知识网上很少,我看了几篇感觉都看不太明白,最后还是想起自己有本《加密与解密》(大坑a);书中的第20章虚拟机的设计,第21章VMProtect逆向和还原浅析(完全看不懂还);结合网
- evilhiding:一款好用的shellcode免杀工具
coleak
#渗透测试#python网络安全安全python
文章目录evilhiding工具浅析项目地址用法免杀测试声明evilhidingshellcodeloader,bypassav,免杀工具,一款基于python的shellcode免杀加载器工具浅析远控条件触发防沙箱花指令干扰loader和shellcode进行fernet加密触发器混淆干扰特征码自动刷新ico图片的md5,防止图标特征码被查杀项目地址github开源,求个stars嘻嘻嘻(sta
- python免杀初探
coleak
#渗透测试安全pythonwindowsevilhiding免杀
文章目录loader基础知识loader参数介绍evilhiding项目地址免杀方式修改加载器花指令混淆loader源码修改签名加壳远程条件触发修改ico的md5加密loader基础知识loaderimportctypes#(kali生成payload存放位置)shellcode=bytearray(b"shellcode")#设置VirtualAlloc返回类型为ctypes.c_uint64c
- Reverse入门[不断记录]
Aiwin-Hacker
web安全
文章目录前言一、[SWPUCTF2021新生赛]re1二、[SWPUCTF2021新生赛]re2三、[GFCTF2021]wordy[花指令]四、[NSSRound#3Team]jump_by_jump[花指令]五、[NSSRound#3Team]jump_by_jump_revenge[花指令]六、[WUSTCTF2020]level2[UPX脱壳]六、[HUBUCTF2022新生赛]simpl
- java免费代码混淆工具 支持JDK16 java加密
非著名架构师
混淆技术知识文档java混淆java加密java授权java字符串加密JDK16
java代码可以反编译,因此有时候要保护自己的知识产权还真得费点心思,一般来说有三个思路:1、将class文件加密,这个是最安全的,但也费事儿,因为要将字节码混淆,打乱;2、使用花指令,使得class文件不能反编译(利用反编译工具漏洞);安全性一般,还是有花指令破解器;3、代码混淆,提高代码阅读成本;简单易操作,一般采用这种或者与其它方式结合;支持JDK16的代码编辑器,支持window,linu
- 【WEB逆向】关于tiktok参数msToken,X-Bogus,_signature生成
H(小何)
flaskpython
目录tiktok逆向算法介绍算法生成研究代码跟踪代码编写开发者测试tiktok的基本接口编辑评论截图tiktok逆向本文只是技术探讨,如果对tiktok造成影响请告知,本人及时删除。在线联系VV:HH19991111LV从视频主页开始查找标题,如图下:会发现加密参数的msToken,X-Bogus,_signature这个三个以下开始算法研究算法介绍根据js代码抽取和去除花指令需要大量时间,以及绕
- Objective-C代码混淆
东了个尼
【本文转载自】(https://blog.csdn.net/yiyaaixuexi/article/details/29201699)class-dump可以很方便的导出程序头文件,不仅让攻击者了解了程序结构方便逆向,还让着急赶进度时写出的欠完善的程序给同行留下笑柄。所以,我们迫切的希望混淆自己的代码。混淆的常规思路混淆分许多思路,比如:1)花代码花指令,即随意往程序中加入迷惑人的代码指令2)易读
- BUUCTF reverse wp 81 - 85
fa1c4
逆向工程逆向
[SCTF2019]babyre反编译失败,有花指令有一个无用字节,阻止反编译,patch成0x90所有标红的地方nop掉之后按p重申函数main和loc_C22,F5成功int__cdeclmain(intargc,constchar**argv,constchar**envp){charv4;//[rsp+Fh][rbp-151h]intv5;//[rsp+10h][rbp-150h]intv
- BUUCTF reverse wp 51 - 55
fa1c4
逆向工程逆向
findKeyshift+f12找到一个flag{}字符串,定位到关键函数,F5无效,大概率是有花指令,读一下汇编这里连续push两个byte_428C54很奇怪,nop掉下面那个,再往上找到函数入口,p设置函数入口,再F5LRESULT__stdcallsub_401640(HWNDhWndParent,UINTMsg,WPARAMwParam,LPARAMlParam){intv5;//eax
- BUUCTF reverse wp 31 - 40
fa1c4
逆向工程逆向
[HDCTF2019]Maze脱壳,IDA打开,发现无法F5,而且反汇编失败这种情况一般是花指令,误导了IDA的递归反汇编,这里E8是call指令,nop掉按p设置main函数入口再F5即可int__cdeclmain(intargc,constchar**argv,constchar**envp){intv4;//[esp+0h][ebp-24h]intv5;//[esp+0h][ebp-24h
- 易语言特征码的应用
Tandy12356_
软件对抗c++windowsc语言汇编
一、本章概要注:搜特征码一定要从代码段的开始搜索,防止别人加了壳之后你不知道怎么搞,然后ctrl+b把特征码(比如ff55fc5f5e)粘贴进去搜到testedx,3往上面看有没有上面三句,有就是易语言的特征码按钮事件:易语言控件消息派发函数易语言的字符比较永远是这样,除非他加了VM,我加花指令让他全是testedx,3真码在ecx当中,我们输入的字符串存储在edx当中然后往回跟,很快就能跟到破解
- JAVA中的Enum
周凡杨
javaenum枚举
Enum是计算机编程语言中的一种数据类型---枚举类型。 在实际问题中,有些变量的取值被限定在一个有限的范围内。 例如,一个星期内只有七天 我们通常这样实现上面的定义:
public String monday;
public String tuesday;
public String wensday;
public String thursday
- 赶集网mysql开发36条军规
Bill_chen
mysql业务架构设计mysql调优mysql性能优化
(一)核心军规 (1)不在数据库做运算 cpu计算务必移至业务层; (2)控制单表数据量 int型不超过1000w,含char则不超过500w; 合理分表; 限制单库表数量在300以内; (3)控制列数量 字段少而精,字段数建议在20以内
- Shell test命令
daizj
shell字符串test数字文件比较
Shell test命令
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。 数值测试 参数 说明 -eq 等于则为真 -ne 不等于则为真 -gt 大于则为真 -ge 大于等于则为真 -lt 小于则为真 -le 小于等于则为真
实例演示:
num1=100
num2=100if test $[num1]
- XFire框架实现WebService(二)
周凡杨
javawebservice
有了XFire框架实现WebService(一),就可以继续开发WebService的简单应用。
Webservice的服务端(WEB工程):
两个java bean类:
Course.java
package cn.com.bean;
public class Course {
private
- 重绘之画图板
朱辉辉33
画图板
上次博客讲的五子棋重绘比较简单,因为只要在重写系统重绘方法paint()时加入棋盘和棋子的绘制。这次我想说说画图板的重绘。
画图板重绘难在需要重绘的类型很多,比如说里面有矩形,园,直线之类的,所以我们要想办法将里面的图形加入一个队列中,这样在重绘时就
- Java的IO流
西蜀石兰
java
刚学Java的IO流时,被各种inputStream流弄的很迷糊,看老罗视频时说想象成插在文件上的一根管道,当初听时觉得自己很明白,可到自己用时,有不知道怎么代码了。。。
每当遇到这种问题时,我习惯性的从头开始理逻辑,会问自己一些很简单的问题,把这些简单的问题想明白了,再看代码时才不会迷糊。
IO流作用是什么?
答:实现对文件的读写,这里的文件是广义的;
Java如何实现程序到文件
- No matching PlatformTransactionManager bean found for qualifier 'add' - neither
林鹤霄
java.lang.IllegalStateException: No matching PlatformTransactionManager bean found for qualifier 'add' - neither qualifier match nor bean name match!
网上找了好多的资料没能解决,后来发现:项目中使用的是xml配置的方式配置事务,但是
- Row size too large (> 8126). Changing some columns to TEXT or BLOB
aigo
column
原文:http://stackoverflow.com/questions/15585602/change-limit-for-mysql-row-size-too-large
异常信息:
Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAM
- JS 格式化时间
alxw4616
JavaScript
/**
* 格式化时间 2013/6/13 by 半仙
[email protected]
* 需要 pad 函数
* 接收可用的时间值.
* 返回替换时间占位符后的字符串
*
* 时间占位符:年 Y 月 M 日 D 小时 h 分 m 秒 s 重复次数表示占位数
* 如 YYYY 4占4位 YY 占2位<p></p>
* MM DD hh mm
- 队列中数据的移除问题
百合不是茶
队列移除
队列的移除一般都是使用的remov();都可以移除的,但是在昨天做线程移除的时候出现了点问题,没有将遍历出来的全部移除, 代码如下;
//
package com.Thread0715.com;
import java.util.ArrayList;
public class Threa
- Runnable接口使用实例
bijian1013
javathreadRunnablejava多线程
Runnable接口
a. 该接口只有一个方法:public void run();
b. 实现该接口的类必须覆盖该run方法
c. 实现了Runnable接口的类并不具有任何天
- oracle里的extend详解
bijian1013
oracle数据库extend
扩展已知的数组空间,例:
DECLARE
TYPE CourseList IS TABLE OF VARCHAR2(10);
courses CourseList;
BEGIN
-- 初始化数组元素,大小为3
courses := CourseList('Biol 4412 ', 'Psyc 3112 ', 'Anth 3001 ');
--
- 【httpclient】httpclient发送表单POST请求
bit1129
httpclient
浏览器Form Post请求
浏览器可以通过提交表单的方式向服务器发起POST请求,这种形式的POST请求不同于一般的POST请求
1. 一般的POST请求,将请求数据放置于请求体中,服务器端以二进制流的方式读取数据,HttpServletRequest.getInputStream()。这种方式的请求可以处理任意数据形式的POST请求,比如请求数据是字符串或者是二进制数据
2. Form
- 【Hive十三】Hive读写Avro格式的数据
bit1129
hive
1. 原始数据
hive> select * from word;
OK
1 MSN
10 QQ
100 Gtalk
1000 Skype
2. 创建avro格式的数据表
hive> CREATE TABLE avro_table(age INT, name STRING)STORE
- nginx+lua+redis自动识别封解禁频繁访问IP
ronin47
在站点遇到攻击且无明显攻击特征,造成站点访问慢,nginx不断返回502等错误时,可利用nginx+lua+redis实现在指定的时间段 内,若单IP的请求量达到指定的数量后对该IP进行封禁,nginx返回403禁止访问。利用redis的expire命令设置封禁IP的过期时间达到在 指定的封禁时间后实行自动解封的目的。
一、安装环境:
CentOS x64 release 6.4(Fin
- java-二叉树的遍历-先序、中序、后序(递归和非递归)、层次遍历
bylijinnan
java
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;
public class BinTreeTraverse {
//private int[] array={ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
private int[] array={ 10,6,
- Spring源码学习-XML 配置方式的IoC容器启动过程分析
bylijinnan
javaspringIOC
以FileSystemXmlApplicationContext为例,把Spring IoC容器的初始化流程走一遍:
ApplicationContext context = new FileSystemXmlApplicationContext
("C:/Users/ZARA/workspace/HelloSpring/src/Beans.xml&q
- [科研与项目]民营企业请慎重参与军事科技工程
comsci
企业
军事科研工程和项目 并非要用最先进,最时髦的技术,而是要做到“万无一失”
而民营科技企业在搞科技创新工程的时候,往往考虑的是技术的先进性,而对先进技术带来的风险考虑得不够,在今天提倡军民融合发展的大环境下,这种“万无一失”和“时髦性”的矛盾会日益凸显。。。。。。所以请大家在参与任何重大的军事和政府项目之前,对
- spring 定时器-两种方式
cuityang
springquartz定时器
方式一:
间隔一定时间 运行
<bean id="updateSessionIdTask" class="com.yang.iprms.common.UpdateSessionTask" autowire="byName" />
<bean id="updateSessionIdSchedule
- 简述一下关于BroadView站点的相关设计
damoqiongqiu
view
终于弄上线了,累趴,戳这里http://www.broadview.com.cn
简述一下相关的技术点
前端:jQuery+BootStrap3.2+HandleBars,全站Ajax(貌似对SEO的影响很大啊!怎么破?),用Grunt对全部JS做了压缩处理,对部分JS和CSS做了合并(模块间存在很多依赖,全部合并比较繁琐,待完善)。
后端:U
- 运维 PHP问题汇总
dcj3sjt126com
windows2003
1、Dede(织梦)发表文章时,内容自动添加关键字显示空白页
解决方法:
后台>系统>系统基本参数>核心设置>关键字替换(是/否),这里选择“是”。
后台>系统>系统基本参数>其他选项>自动提取关键字,这里选择“是”。
2、解决PHP168超级管理员上传图片提示你的空间不足
网站是用PHP168做的,反映使用管理员在后台无法
- mac 下 安装php扩展 - mcrypt
dcj3sjt126com
PHP
MCrypt是一个功能强大的加密算法扩展库,它包括有22种算法,phpMyAdmin依赖这个PHP扩展,具体如下:
下载并解压libmcrypt-2.5.8.tar.gz。
在终端执行如下命令: tar zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8/ ./configure --disable-posix-threads --
- MongoDB更新文档 [四]
eksliang
mongodbMongodb更新文档
MongoDB更新文档
转载请出自出处:http://eksliang.iteye.com/blog/2174104
MongoDB对文档的CURD,前面的博客简单介绍了,但是对文档更新篇幅比较大,所以这里单独拿出来。
语法结构如下:
db.collection.update( criteria, objNew, upsert, multi)
参数含义 参数  
- Linux下的解压,移除,复制,查看tomcat命令
y806839048
tomcat
重复myeclipse生成webservice有问题删除以前的,干净
1、先切换到:cd usr/local/tomcat5/logs
2、tail -f catalina.out
3、这样运行时就可以实时查看运行日志了
Ctrl+c 是退出tail命令。
有问题不明的先注掉
cp /opt/tomcat-6.0.44/webapps/g
- Spring之使用事务缘由(3-XML实现)
ihuning
spring
用事务通知声明式地管理事务
事务管理是一种横切关注点。为了在 Spring 2.x 中启用声明式事务管理,可以通过 tx Schema 中定义的 <tx:advice> 元素声明事务通知,为此必须事先将这个 Schema 定义添加到 <beans> 根元素中去。声明了事务通知后,就需要将它与切入点关联起来。由于事务通知是在 <aop:
- GCD使用经验与技巧浅谈
啸笑天
GC
前言
GCD(Grand Central Dispatch)可以说是Mac、iOS开发中的一大“利器”,本文就总结一些有关使用GCD的经验与技巧。
dispatch_once_t必须是全局或static变量
这一条算是“老生常谈”了,但我认为还是有必要强调一次,毕竟非全局或非static的dispatch_once_t变量在使用时会导致非常不好排查的bug,正确的如下: 1
- linux(Ubuntu)下常用命令备忘录1
macroli
linux工作ubuntu
在使用下面的命令是可以通过--help来获取更多的信息1,查询当前目录文件列表:ls
ls命令默认状态下将按首字母升序列出你当前文件夹下面的所有内容,但这样直接运行所得到的信息也是比较少的,通常它可以结合以下这些参数运行以查询更多的信息:
ls / 显示/.下的所有文件和目录
ls -l 给出文件或者文件夹的详细信息
ls -a 显示所有文件,包括隐藏文
- nodejs同步操作mysql
qiaolevip
学习永无止境每天进步一点点mysqlnodejs
// db-util.js
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit : 10,
host: 'localhost',
user: 'root',
password: '',
database: 'test',
port: 3306
});
- 一起学Hive系列文章
superlxw1234
hiveHive入门
[一起学Hive]系列文章 目录贴,入门Hive,持续更新中。
[一起学Hive]之一—Hive概述,Hive是什么
[一起学Hive]之二—Hive函数大全-完整版
[一起学Hive]之三—Hive中的数据库(Database)和表(Table)
[一起学Hive]之四-Hive的安装配置
[一起学Hive]之五-Hive的视图和分区
[一起学Hive
- Spring开发利器:Spring Tool Suite 3.7.0 发布
wiselyman
spring
Spring Tool Suite(简称STS)是基于Eclipse,专门针对Spring开发者提供大量的便捷功能的优秀开发工具。
在3.7.0版本主要做了如下的更新:
将eclipse版本更新至Eclipse Mars 4.5 GA
Spring Boot(JavaEE开发的颠覆者集大成者,推荐大家学习)的配置语言YAML编辑器的支持(包含自动提示,