- 博客(74)
- 资源 (13)
- 收藏
- 关注
原创 IP地址字符转INT(PLSQL版)
declareval varchar2(1024);val_new varchar2(1024);i integer;p1 integer;p2 integer;p3 integer;p4 integer;ip integer;begin val := '192.168.010.017'; p1 := 0; p2
2015-04-17 16:03:24
1511
原创 绝对秒数与DATE互转(PLSQL版)
--将绝对秒数为1429056000转为DATESELECT TO_DATE('1970-1-1','YYYY-MM-DD')+(1429056000/(3600*24)) FROM DUAL;--将2015-4-15转为绝对秒数SELECT (TO_DATE('2015-4-15','YYYY-MM-DD') - TO_DATE('1970-1-1','YYYY-MM-DD
2015-04-15 13:22:36
6961
原创 GOOGLE与百度经纬度互转(plsql版)
首先创建两个存储过程BAIDU2GOOGLE(百度转google)和GOOGLE2BAIDU(google转百度)。CREATE OR REPLACE PROCEDURE "BAIDU2GOOGLE"(in_lat IN OUT NUMBER,in_lng IN OUT NUMBER)IS RESULT NUMBER; V NUMBER; X NUMB
2015-04-15 12:09:58
1215
原创 jsoncpp链接错误解决方法
项目->属性->C/C++->代码生成->运行时裤->多线程 DLL(/MD)项目->属性->C/C++->输出文件->汇编输出->无列表
2015-01-29 08:45:47
1427
原创 修改mysql远程root密码
#ifdef _WIN32#define snprintf _snprintf#endifbool ChangeRemoteRootPwd(const char* szHost,const char* szRoot, const char* szRootPwd,const char* szDb,
2015-01-12 09:26:27
933
原创 密码生成器C实现
#include #include #include //const char lower_chars[] = "abcdefghijklmnopqrstuvwxyz";//const char upper_chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";//const char number_chars[] = "0123456789";
2015-01-05 15:53:51
1451
原创 vmware虚拟机迁移导致的eth0消失问题
将原来的虚拟机文件迁移到另一台机子之后。ifconfig显示只有一个lo网卡,网上找了一些文章,大多是修改/etc/network/interfaces原来内容是# ######################################################## This file describes the network interfaces available
2014-10-10 16:55:10
1371
原创 解析http302重定向url
bool urlparse(const u_char* data,u_int len){ip_header *ih;udp_header *uh;tcp_header *th;u_short sport,dport;int ip_len = 0;ih = (ip_header *)(data+0xE);ip_len = (ih->ver_ihl &
2014-10-08 13:47:21
7524
原创 boost 1.56编译问题
一直用boost 1.47版本,今天到boost官网看了一下,发现已经更新到1.56版本了,准备用一下最新版本。我原先用的编译器是msvc-7.1和msvc-8.0,首先解压boost,在根目录运行booststrap.bat,第一次出现bjam编译失败的情况。看了一下booststrap.log,发现有错误,总之有东东未定义,不管是vc7还是vc8都有这样的问题。后来装了vc9,再次运行
2014-08-14 11:15:11
2699
原创 PE文件添加Overlay
Overlay,简单的说就是PE文件末尾添加一段附加数据,不会影响可执行文件的执行,我们可以用附加数据校验可执行文件是否被恶意修改。以下代码简单得往可执行文件末尾添加一段原始文件的md5值。#include #include #include #include #include #include #include "md5.h"using namespace s
2014-04-23 16:04:11
2475
原创 可执行文件延迟加载
#include //隐藏控制台界面#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")void RunProcess(int nDelay,char* szCmd){ STARTUPINFO si = {sizeof(si)}; PROCESS_INFORMATION pi;
2014-04-17 10:10:40
915
原创 使用ollyice去除sublime text的更新提示
sublime text 2是一款优秀代码编辑器,目前还是喜欢使用老版本,毕竟新版本需要经过时间的检验。但是用老版本,没有打开时都会出现更新提示。虽然不影响使用,但每次都弹还是有点受不了,于是就想使用OllyICE修改端这段弹出代码,很明显这个对话框是调用MessageBoxA或者MessageBoxW弹出来的。经过调试发现是MessageBoxW。为MessageBoxW设断点,在Oll
2013-12-31 11:31:05
1730
原创 获取外网IP最简单的方法
std::string getOutIpaddress(){ std::string strRet = ""; HRESULT hr = URLDownloadToFile(NULL,"http://www.3322.org/dyndns/getip","ip2city.dat",0,NULL); if (hr != S_OK) { return strRet; }
2013-12-27 10:49:16
2868
原创 调试delphi服务进程
今天需要调试一个delphi的服务进程,原以为调试的时候,只要在delphi的"run->Parameters"中的Parameters中添加"-install"就可以正常调试。后来才发现没这么简单,因为这样运行的时候总会弹出一个io error错误框。没办法只好使用附加进程了,先写一个批处理myservices -installsc start myservices安装启动服务后
2013-11-08 17:35:35
1643
原创 打造支持加密与odbc的sqlite
一直想找一个支持加密和odbc接口的sqlite免费版本,可以找了很久都没有找到。于是开始基于开源版本sqlite重新打造。wxsqlite3(加密版sqlite):http://sourceforge.net/projects/wxcode/files/Components/wxSQLite3/sqliteodbc(odbc版sqlite):https://github.com/soft
2013-10-23 11:18:21
2878
原创 pl/sql中的length,substr和lengthb,substrb用法解析
oracle数据库中字符串varchar2有两种定义方式,分别是varchar2(n char)和varchar2(n byte)。但我们一般习惯定义varchar2(n),这样oracle会根据配置文件中的设置选择以字节为单位还是以字符为单位。我们可以通过pl/sql developer的命令窗口,输入"show parameter nls_length",查看当前值,如果返回值为byt
2013-10-12 14:29:52
8568
翻译 zip非暴力破解
大家最熟悉的zip破解方式应该是暴力破解,暴力破解有很大局限性,如果密码很长很复杂你很可能一辈子都破解不出来。由于今天要破解自己以前加密过的zip文件,我设的密码习惯性长而复杂,果断放弃暴力破解,在网上找到一篇文章http://bbs.youkuaiyun.com/topics/10444536,我才知道有另外一种破解方法,前提是你拥有加密压缩包里的任意一个文件,一般我们可以根据winrar查看拥有的文件名和
2013-08-22 16:35:32
16739
原创 批量测试服务器端口是否开放
#include "stdafx.h"#include #include #include #include using namespace std;#pragma comment(lib,"ws2_32")bool isPortOpen(const char* szIp,int nPort){ SOCKET sock = socket(AF_INET,SOCK
2013-08-19 17:25:11
1991
原创 在64位oracle服务器上使用32位oracle客户端
今天遇到一个问题,需要将一个32使用ado连接oracle数据库的程序运行在安装了64位oracle服务器的系统上,虽然32位进程能在64位系统上运行,但是32位进程不能加载64位DLL,由于oracle需要把64位的oci.dll等加到环境变量PATH里面,所以我们不能将32位的oci.dll再加到PATH里面。但是我们可以利用windows加载dll顺序(先查找当前目录,如果找不到再查找pat
2013-08-14 10:29:33
5548
原创 使用visual c++ 2005远程调试64位系统上32位与64位程序
一直都挺喜欢使用visual c++远程调试代码,它能展现给我们当时代码执行最真实的情景,今天有时间记录一下,以免以后忘了。远程调试需要在被调试端安装服务器,对于visual c++ 2005来说调试器所在路径如下如果我们需要调试64位系统上的64位进程我们需要复制x64目录到64位系统上,如果我们需要调试64位系统上的32位进程我们需要复制x86目录到64位系统上。为了方便调
2013-07-15 15:40:39
1774
原创 使用visual c++ 2005编译64位可执行文件
最近需要将一个32位的程序移植到64位上,由于原来是使用vs2003写的,vs2003本身并不支持编译64位,只能升级到vs2005以上版本。个人还是比较喜欢vs2005,对c++来说,vs2005的功能基本上已经够用了。基本步骤如下: 接下来只要重新编译即可,当然代码可能需要修改,例如OnTimer(UINT nIDEvent)需要改成OnTimer(UINT_PTR n
2013-07-15 15:19:45
5302
原创 c语言编程之sglib库的简单使用
说实话自从大学毕业后已经很久没有用c语言写过程序了,一般都是使用c++,c++的stl和boost等,这些代码库大大简化了我们的编程复杂度。由于最近某种原因在次开始用c写程序。我是个比较懒的人,比较喜欢使用别人的第三方库,好不容易找到一个叫sglib的开源库,当然要使用一下啦。不多说。#include #include #include #include "sglib.h"
2013-07-03 11:33:00
2898
原创 delphi中资源的添加与解压
有时候我们需要在主程序中添加sys和dll等二进制资源,当我们预期的sys和dll文件被删改时,我们可以从资源中解压。首先编写资源脚本文件,测试的脚本my.rc内容很简单,只是当前目录的一个文件,代码如下:viewpic bin ".\viewpic.exe" 然后我们需要将rc文件编译成res,那样我们的程序就可以添加资源,简单地用批处理写编译资源脚本build.bat:br
2013-06-19 10:48:24
1323
原创 MFC对话框工程移植
最近需要将两个老的mfc项目合并,因此至少有一个工程的资源需要移植到另一个。移植主要是针对对话框资源,资源主要包含在*.rc和resource.h文件中,resource.h包含的是工程资源ID的定义,*.rc包含对话框资源的定义。如果我们需要移植IDD_ABOUTBOX,首先我们需要在*.rc中查找IDD_ABOUTBOX,并将该定义复制到另一个工程,IDD_ABOUTBOX很可能跟另一个工程的
2013-05-21 09:09:47
2123
1
原创 设置windows自动登录
参考http://support.microsoft.com/kb/97597/zh-cn/* @设置开机自启动 @strUser,用户名 @strPass,密码 @strAutoAdminLogon,当该值为1时自动登录,0取消 @return,成功返回TRUE,否则返回FALSE*/BOOL SetWindowAutoLogin(LPCTSTR strUser,
2013-05-20 15:39:26
918
原创 防止消息钩子入侵
很久以前就知道可以使用LoadLibraryExW来防止全局钩子入侵,说实话一直很反感消息钩子。曾经想过在驱动层通过过hook NtUserSetWindowsHookEx来防止,但是我们并不是很好区分钩子不是不恶意的,而且windows系统本身也会使用,还有就是驱动层很多安全软件和rootkit都盯上了,稳定性是一个问题。后来我看到xuetr.exe也是在用户层hook自身的LoadLibrar
2013-04-28 16:05:46
1898
原创 delphi条件编译
一直使用c++开发程序,最近一年开始开发delphi的项目,最近一段时间需要从一份代码中编译不同版本。在c++中我一般会利用#define对不同版本代码进行区分。我想delphi也应该有,带着试试看的角度上网搜索了一下,发现delphi的宏定义是($IFDEF,$Else,$ENDIF),跟c++的很像,只是把"#"换成了"$"。可以在Project->Option->Directories/Co
2013-04-28 15:35:14
1596
原创 内核层关机重启
现在HOOK越来越普遍,很多恶意程序通用hook用户进程的关机函数禁止关机,有些则是hook winlogon.exe的关机函数,因为进程的调用关机函数会最终给winlogon.exe发送关机消息。所以在用户层实现关机已经越来越不安全了。内核驱动禁止关机也不是很安全,通过windbg可以发现xuetr.exe禁止关机的原理是对NtShutdownSystem调用的SeSinglePrivilege
2013-03-04 10:14:12
4084
原创 ntfs数据流的复制
数据流文件不能使用CopyFile进行复制,但是可以变相使用ReadFile,WriteFile实现。procedure CopyDataStream(strFileName,strNewFileName:string);var hFile,hNewFile:Cardinal; dwLen,dwRet:DWORD; szBuf:array[0..102400] of
2013-01-07 17:18:27
1992
原创 计划任务之一天一次
#include #include #include #include #pragma comment(lib,"netapi32")void AddJobW(WCHAR* wszFileName){ AT_INFO ai; memset(&ai,0,sizeof(ai)); ai.Command = wszFileName; ai.DaysOfMonth
2012-12-25 14:55:50
1315
原创 华为网盘控件的卸载
不想多说,以下是用regshot对比控件安装前后的报告,如想卸载只要把相关键删除即可。插件路径为"\Documents and Settings\Administrator\Application Data\DBankPlugin\DBankPluginIE.dll"。以上是去年写的,新版本路径已经不在那个地方。以下提供几种解决方法。1.技术没有正邪之分,依次展开注册表"HKEY_CL
2012-12-18 14:48:57
9150
原创 进程守护示例
有时候我们希望主进程创建一个子进程,而且我们希望父进程运行时,子进程也能运行着。这就需要我们检测子进程的状态,如果子进程已经结束,我们就重新创建一个,其实方法有很多,今天就是用WaitForSingleObject简单实现一下这个功能。代码如下:DWORD WINAPI ThreadProc( LPVOID lpParameter ){ std::s
2012-12-17 14:11:29
666
原创 事件对象编程示例
#pragma once#include class CDaemonThread{public: CDaemonThread(void); ~CDaemonThread(void); static DWORD WINAPI ThreadProc(LPVOID lpParameter);protected: HANDLE m_hThread; HANDLE m
2012-10-24 14:54:44
768
原创 简单设置程序自启动
/*example: SetAutoRun("abc","c:\\abc.exe");*/void SetAutoRun(const char* szValueName,const char* szData){ HKEY hKey; DWORD dwRet = RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Win
2012-10-22 09:45:28
668
原创 多线程编程示例
#include "stdafx.h"#include #define THREAD_NUM 50 //线程数CRITICAL_SECTION g_cs;int ThreadProc(LPVOID lpParam){ int x = *(int*)lpParam; for (int i=0; i { EnterCriticalSection(&g_cs);
2012-10-12 13:01:27
672
原创 plsql处理xml特殊字符
CREATE OR REPLACE FUNCTION FilterStr(strVal VARCHAR2)RETURN VARCHAR2IS strTmp VARCHAR2(2048) := strVal;BEGIN strTmp := replace(strTmp,chr(38),chr(38)||'amp;'); --chr(38) '&' str
2012-10-11 12:15:42
1630
原创 简单的INLINE HOOK检测
/* @desc:目前只检测最简单的两种inline hook,对IAT HOOK,CALL HOOK和深层次的INLINE HOOK没检测。 @desc:最好的恢复方法是先恢复IAT HOOK,然后从函数所在文件中提取函数机器码与内存中对比,不同则恢复之 @param1[in]:dwProc:函数地址*/bool IsProcHooked(DWORD dwProc){
2012-09-24 09:43:20
4213
原创 计算文件crc32(精简版)
#include //文件内存映射#include //冗余校验unsigned long crc32file(const char* szFileName){ boost::iostreams::mapped_file _mapfile(szFileName); if (!_mapfile.is_open()) return 0; boost::crc_32_t
2012-09-20 16:35:44
2048
原创 智能指针的简单应用
class net_session:public boost::enable_shared_from_this{public: net_session() { std::cout } ~net_session() { std::cout }}; int _tmain(int argc, _TCHAR* argv[]){ std:
2012-09-13 12:12:20
671
Intel 80386 Programmer's Reference Manual 1986
2010-08-22
OSKRN文件透明加密系统
2010-08-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人