2010-06-23 11:18:41
涉及的技术内容包括:ASM、ANSI C、.NET/C#、Python、Linux/Ubuntu 等。
记录读书笔记、生活点滴。关注基础理论和开发……
除特别标注外,所有文章均为作者原创,转载请注明出处。谢谢!

  查看 "推荐文章目录"。  


  研发中心长期招聘开发人员,详情请点击 "Linux/C, Python 职位"、 ".NET/C# 职位"。
  雨痕内部技术交流群,欢迎熟识的朋友参与。 将 添加为您的 MSN 联系人即可。
  为杜绝垃圾广告的侵扰,只有注册用户可以发表评论和留言。
  如果有什么问题,可以单击右侧图标给雨痕发消息。( 绿色: 在线; 灰色: 脱机)
浏览模式: 普通 | 列表
分类: Tools | 1 | 2 | 3 | 4 | 5 | 6 | 7 | >

IPython Magic Functions

[ 2010-07-19 22:03:24 | 作者: yuhen ]
将 IPython 用熟了,可以轻松在试验、编码、测试间 "无缝折腾"。[lol]
$ ipython

Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
Type "copyright", "credits" or "license" for more information.

IPython 0.10 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. 
...

阅读全文…

Git Commands

[ 2010-07-18 16:42:25 | 作者: yuhen ]
1. 系统设置

通常情况下,我们只需简单设置用户信息和着色即可。
$ git config --global user.name "Q.yuhen"
$ git config --global user.email qyuhen@abc.com
$ git config --global color.ui true 

可以使用 "--list" 查看当前设置。
$ git config --list

2. 初始化

创建项目目录,然后执行 "git init" 初始化。这会在项目目录创建 ".git" 目录,即为元数据信息所在。
$ git init

通常我们还需要创建一个忽略配置文件 ".gitignore",并不是什么都需要加到代码仓库中的。

...

阅读全文…

Git Server

[ 2010-05-17 01:21:22 | 作者: yuhen ]
建立一个 Git 代码共享仓库服务器。

1. 服务器

通常用 SSH 协议即可,我们应该为 Git 创建一个专用账号。
$ sudo useradd git

$ sudo passwd git
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

创建一个用来保存代码仓库的目录,注意赋予 git 账号读写权限。
$ sudo mkdir -p /var/git.server/project1
$ cd /var/git.server

$ sudo chown git project1
$ sudo chgrp git project1

$ ls -l
total 4
drwxr-xr-x 
...

阅读全文…

Git Tips

[ 2010-04-20 20:19:38 | 作者: yuhen ]
1. 删除文件

除了用 "rm" 删除工作目录中的文件外,还得用 "git rm <file>" 删除代码仓库中的文件。
$ rm INSTALL 

$ git status
# On branch master
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    deleted:    INSTALL
#
no changes added to commit (use "git add" and/or "git commit -a")
...

阅读全文…

Git Basics

[ 2010-04-20 17:28:53 | 作者: yuhen ]
Git 的好处还是看官方文档吧,我就不瞎扯了。我只是按照我个人的习惯简单走一下流程,记录一下。

1. 创建项目目录,建立 Git 仓库。
$ mkdir myproject

$ cd myproject

$ git init # 初始化 git 仓库
Initialized empty Git repository in /home/yuhen/myproject/.git/

从此,myproject 就是工作目录,而 git 创建的 .git 隐藏目录就是代码仓库了。

2. 建立忽略配置文件。
$ cat > .gitignore << end
> *.[oa]
> *.so
> *~
> !a.so
> test
> tmp/
> end

支持匹配符和正则表达式,支持 ...

阅读全文…

NetBeans IDE 6.8

[ 2010-01-04 17:02:49 | 作者: yuhen ]
如果实在不习惯 VIM + gdb,那么就用 NetBeans IDE 6.8 吧,一样非常好用。项目管理、代码提示、自动补全、代码重构,以及版本管理等等都和 VS 差不多。

1. 先安装 JRE6 。
$ sudo apt-get install sun-java6-jre

2. 去 netbeans.org 下载 for C/C++ 版本,也就 30MB。(不要直接从 sources 安装,忒大)

3. 为下载的 netbeans-6.8-ml-cpp-linux.sh 文件添加执行权限。
$ chmod a+x netbeans-6.8-ml-cpp-linux.sh
$ ./netbeans-6.8-ml-cpp-linux.sh

安装界面可能出现中文显示不全的现象,不用管它。

4. 安装结束后,不要启动 ...

阅读全文…

用汇编分析 .NET 执行 - 简易版

[ 2009-08-20 22:02:14 | 作者: yuhen ]
前些日子博客园有过一次热闹的 IL 和 汇编之争,我非常无聊地当了回事后围观群众。双方都是博客园的牛人,我作为 "境外人士" 就不站队掺和了。

就我个人而言,C#、IL、ASM 在 "挖坟" 时通常会组合起来使用。IL 有助于理解虚拟平台的 "实现",在不脱离抽象思想的情况下去了解 "过程"。而 ASM 则专注于现实的本质,一个最终的结果,让我们用最原始的 "数据" 和 "指针" 验证计算结果。我比较反感用 ASM 来推导 "思想",因为 ASM 是一种最终实现,它一定程度上忽略了 "思想过程" (抽象变成了指针) 和 "行为规则" (被编译器优化掉)。.NET、Java 以及现下流行的动态语言,它们共同遵循的是同一种 (或相似) "思想",一种基于堆栈式虚拟机的设计,只是实现上各有差异。用某个平台上反汇编结果来反推 "思想" 似乎在培养一种恶劣的习惯,一种因果倒置的逻辑。我有些羡慕 ...

阅读全文…

.NET Reactor 4.0 - Metadata 手工修复记

[ 2009-06-13 14:47:31 | 作者: yuhen ]
.NET Reactor 4.0 (Beta) 相对于以前的版本有很大的提升,就连最常用的 "Suppress ILDASM" 都升级成 "Suppress Decompilation / Anti ILDASM"。本文就是用这个功能做案例,来锻炼自己对元数据表结构的认知。

1. 加密

找个目标程序集,用 4.0 加密,注意不要选择其他选项,仅选中 "Quick Settings" 中的 "Anti ILDASM" 即可。因为本文的目的是手工修复元数据表,而不是为了完成一个破解过程。

当我们用 .NET Reflector 或者 Mono Cecil 打开这个加密的程序都会发现出错,可见还是具有一定的防护能力的。接下来,我们就依照 .NET Reflector 给出的错误信息开始手工修复过程。

2. 修复

先准备好相应的工具软件,包括 ...

阅读全文…