最近更新了一下Ranorex.Keygen,以前提供的工具有个BUG(打开Ranorex Studio项目时候会加载失败),可能有些朋友下载会去没能用成,估计要骂我了。顺道测试了一下 Ranorex 2.1.0.6243 这个版本,目前破解工具也是支持的。
下载文件 (已下载 126 次)最近2009-06-01更新,将Ranorex.Libs.dll 打入包内,供Ranorex.Keygen运行使用。
PS: 顺便添加了一个保存License的按钮。:)
下载文件 (已下载 126 次)PS: 顺便添加了一个保存License的按钮。:)
工具:LeakDiag 可以从微软的FTP进行下载: ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20Tools/LeakDiag/
leakdiag125.msi 下载后大约有1.7MB,缺省的安装目录是C:\leakdiag
LeakDiag 目前支持六种类型的泄漏:
Virtual Allocator
Heap Allocator
MPHeap Allocator
COM AllocatorCoTaskMem
COM Private Allocator
C Runtime Allocator
LeakDiag拦截指定内存分配的调用并跟踪各种调用栈,它报告已分配但尚未释放的内存,这一信息允许逐个地排除内存泄露问题,以精确查看哪些组件进行了该分配。使用正确的调试符号,还可以查看分配内存的具体代码行数。
LeakDiag 和常见的内存测试工具不一致的地方是,它使用了微软的Detours 技术,常见的内存测试工具通常都在代码编译或者连接阶段来修改进行一些修改,进而对内存分配释放等操作进行截获。而Microsoft Detours就可以中断原有的执行过程转而执行你提供的detour代码或者是在之前加入一些代码然后继续执行原有代码。看起来就好像是在原有函数的入口处直接跳转到新代码了,而这是在运行期变更的。
leakdiag125.msi 下载后大约有1.7MB,缺省的安装目录是C:\leakdiag
LeakDiag 目前支持六种类型的泄漏:
Virtual Allocator
Heap Allocator
MPHeap Allocator
COM AllocatorCoTaskMem
COM Private Allocator
C Runtime Allocator
LeakDiag拦截指定内存分配的调用并跟踪各种调用栈,它报告已分配但尚未释放的内存,这一信息允许逐个地排除内存泄露问题,以精确查看哪些组件进行了该分配。使用正确的调试符号,还可以查看分配内存的具体代码行数。
LeakDiag 和常见的内存测试工具不一致的地方是,它使用了微软的Detours 技术,常见的内存测试工具通常都在代码编译或者连接阶段来修改进行一些修改,进而对内存分配释放等操作进行截获。而Microsoft Detours就可以中断原有的执行过程转而执行你提供的detour代码或者是在之前加入一些代码然后继续执行原有代码。看起来就好像是在原有函数的入口处直接跳转到新代码了,而这是在运行期变更的。
Python 可以用C/C++来写扩展,在已经有C实现代码的时候,用SWIG来自动转换将更加方便。
何为SWIG,SWIG 是Simplified Wrapper and Interface Generator 的缩写详细的信息可以参考 http://www.swig.org。
看一个简单例子有如下calc.h 和calc.c,一共实现了3个加法函数。我们现在要用将这三个函数实现为Python 的扩展。
calc.h
calc.c:
何为SWIG,SWIG 是Simplified Wrapper and Interface Generator 的缩写详细的信息可以参考 http://www.swig.org。
看一个简单例子有如下calc.h 和calc.c,一共实现了3个加法函数。我们现在要用将这三个函数实现为Python 的扩展。
calc.h
#ifndef __CALC_H
#define __CALC_H
typedef struct {
int j;
int k;
} obj;
int add1(int a, int b);
void add2(int a, int b, int *c);
void add3(obj a, obj *b, obj *c);
#endif
calc.c:
#include "calc.h"
int add1(int a, int b) {
return a + b;
}
void add2(int a, int b, int *c) {
*c = a + b;
}
void add3(obj a, obj *b, obj *c) {
c->j = a.j + b->j;
c->k = a.k + b->k;
}
整理邮箱翻出一个很久以前写的工作小结,那时还是新员工,每个月要写小结,看了看,感觉几年以后差距挺大的……
特地用和蓝色来橙色写,对比一下。
入职第二个月小结
工作4年多后的感叹
嵇斌(02135)
嵇斌(02135)
时间过得真快,在不知不觉中又一个月过去了。似乎时间总是喜欢作弄人,在你需要他的时候,他是那样的吝啬。这个月始终都感觉到一种紧迫感。可以说我已经真真切切的体会到了所谓的压力。当然这也让我更多地体会到了来华为3Com工作所能给人带来的一种激情。
时间过得很快又很慢,4年多了,才4年多了还是已经4年多了?似乎时间总是飘忽不定的:当我回忆同时进公司的XDJM的时候,时间好快,一眨眼,只剩下JM了,XD全跑光了;当我试图从脑子里搜索几年来的收获时,时间好快,好多东西都没弄清楚,4年多就过去了;而漫长4年多之后,我的工作激情似乎已经不在了,就快体会不到压力了,4年多漫长已经让我差点忘了4年多钱的工作激情,以及现在的H3C原来就是曾经的华为3Com。
特地用和蓝色来橙色写,对比一下。
入职第二个月小结
工作4年多后的感叹
嵇斌(02135)
嵇斌(02135)
时间过得真快,在不知不觉中又一个月过去了。似乎时间总是喜欢作弄人,在你需要他的时候,他是那样的吝啬。这个月始终都感觉到一种紧迫感。可以说我已经真真切切的体会到了所谓的压力。当然这也让我更多地体会到了来华为3Com工作所能给人带来的一种激情。
时间过得很快又很慢,4年多了,才4年多了还是已经4年多了?似乎时间总是飘忽不定的:当我回忆同时进公司的XDJM的时候,时间好快,一眨眼,只剩下JM了,XD全跑光了;当我试图从脑子里搜索几年来的收获时,时间好快,好多东西都没弄清楚,4年多就过去了;而漫长4年多之后,我的工作激情似乎已经不在了,就快体会不到压力了,4年多漫长已经让我差点忘了4年多钱的工作激情,以及现在的H3C原来就是曾经的华为3Com。
假如生命只剩下24小时,我会做什么呢?
这个问题最早源于看了一本书之后,一本叫《假如没有明天》的书。看了之后,我试图每天用这个问题来“欺骗”自己,告诉自己剩下的时间不多了,想着天天把工作做好一点,把生活过的有质量一点。我开始给自己每周的工作做周密的计划,每天几点到几点做什么事情,每周必须有几样比较周密的事情需要搞定。生活上差不多也是如此,我开始早上起早锻炼身体,开始晚上不是一味的做无聊得事情,开始给母亲打电话,开始打开QQ和周围的朋友、老同学聊天。
这个问题最早源于看了一本书之后,一本叫《假如没有明天》的书。看了之后,我试图每天用这个问题来“欺骗”自己,告诉自己剩下的时间不多了,想着天天把工作做好一点,把生活过的有质量一点。我开始给自己每周的工作做周密的计划,每天几点到几点做什么事情,每周必须有几样比较周密的事情需要搞定。生活上差不多也是如此,我开始早上起早锻炼身体,开始晚上不是一味的做无聊得事情,开始给母亲打电话,开始打开QQ和周围的朋友、老同学聊天。
工作需要以及自己兴趣爱好,开始写一个Windows下面的报文回放工具,主要用于测试IPS对攻击的检测。类似于tomahawk (http://www.tomahawktesttool.org/ ) 。
只不过这个工具是Linux底下的,用起来不是很方便,平时很多人都不带Linux工作。
于是想写功能差不多的Windows下面的版本,暂时叫wtomahawk,在Google Code下注册了项目:
http://code.google.com/p/wtomahawk/
希望可以坚持下去把这个工具写好,并且维护下去。
这样说来明天开始晚上就得好好Coding了…… 加油 !!!
只不过这个工具是Linux底下的,用起来不是很方便,平时很多人都不带Linux工作。
于是想写功能差不多的Windows下面的版本,暂时叫wtomahawk,在Google Code下注册了项目:
http://code.google.com/p/wtomahawk/
希望可以坚持下去把这个工具写好,并且维护下去。
这样说来明天开始晚上就得好好Coding了…… 加油 !!!
在CSDN上看到一个兄弟的提问,想要控制SVN上传(确切的说应该是提交)文件的大小及类型。想起来自己在管理Bug单的时候也有经常类似审计每次提交,单个C文件的代码变更行数的需求。于是写了一个pre-commit的hook,以备忘。
原贴的地址: http://topic.csdn.net/u/20080404/15/acc7c13b-9079-4241-bcc2-fdb7a80be4a8.html?seed=1212379939
pre-commit 返回非0,则commit失败。
错误信息为stderr的信息。
发现svnlook 还是很强大的,有空得好好研究研究,还有什么奇妙功能可以深入挖掘之。
原贴的地址: http://topic.csdn.net/u/20080404/15/acc7c13b-9079-4241-bcc2-fdb7a80be4a8.html?seed=1212379939
#!/bin/sh
# repot && transaction arguments
REPOS="$1"
TXN="$2"
# svnlook command
SVNLOOK=/usr/local/bin/svnlook
# file filter: we only allow commit .c && .h files.
FILTER='\.(c|h)$'
# max file size in bytes after commit.
MAX_SIZE=102400
# max change per one commit
MAX_CHANGE_LINES=50
files=$($SVNLOOK changed -t $TXN $REPOS | awk '{print $2}')
# check
for f in $files
do
# check file type
if echo $f | grep -Eq $FILTER ; then
# valid file
:
else
echo "File $f is not a .h or .c file" >> /dev/stderr
exit 1
fi
# check file size
filesize=$($SVNLOOK cat -t $TXN $REPOS $f | wc -c)
if [ $filesize -gt $MAX_SIZE ] ; then
echo "File $f is too large (must <= $MAX_SIZE)" >> /dev/stderr
exit 1
fi
# check change lines
changelines=$($SVNLOOK diff -t $TXN $REPOS $f | grep -E '^(\+|-)' | wc -l)
if [ $changelines -gt $MAX_CHANGE_LINES ] ; then
echo "File $f changes too much ($changelines lines, must <= $MAX_CHANGE_LINES)" >> /dev/stderr
exit 1
fi
done
exit 0
pre-commit 返回非0,则commit失败。
错误信息为stderr的信息。
发现svnlook 还是很强大的,有空得好好研究研究,还有什么奇妙功能可以深入挖掘之。






