2010-06-23 11:18:41
涉及的技术内容包括:ASM、ANSI C、.NET/C#、Python、Linux/Ubuntu 等。记录读书笔记、生活点滴。关注基础理论和开发……
除特别标注外,所有文章均为作者原创,转载请注明出处。谢谢!
查看 "推荐文章目录"。
研发中心长期招聘开发人员,详情请点击
"Linux/C, Python 职位"、
".NET/C# 职位"。
雨痕内部技术交流群,欢迎熟识的朋友参与。
将 添加为您的 MSN 联系人即可。
为杜绝垃圾广告的侵扰,只有注册用户可以发表评论和留言。
如果有什么问题,可以单击右侧图标给雨痕发消息。(IPython Magic Functions
[ 2010-07-19 22:03:24 | 作者: yuhen ]
将 IPython 用熟了,可以轻松在试验、编码、测试间 "无缝折腾"。
阅读全文…
$ 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. 系统设置
通常情况下,我们只需简单设置用户信息和着色即可。
可以使用 "--list" 查看当前设置。
2. 初始化
创建项目目录,然后执行 "git init" 初始化。这会在项目目录创建 ".git" 目录,即为元数据信息所在。
通常我们还需要创建一个忽略配置文件 ".gitignore",并不是什么都需要加到代码仓库中的。
...
阅读全文…
通常情况下,我们只需简单设置用户信息和着色即可。
$ 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 创建一个专用账号。
创建一个用来保存代码仓库的目录,注意赋予 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...
阅读全文…
1. 删除文件
除了用 "rm" 删除工作目录中的文件外,还得用 "git rm <file>" 删除代码仓库中的文件。
阅读全文…
除了用 "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 仓库。
从此,myproject 就是工作目录,而 git 创建的 .git 隐藏目录就是代码仓库了。
2. 建立忽略配置文件。
支持匹配符和正则表达式,支持 ...
阅读全文…
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 。
2. 去 netbeans.org 下载 for C/C++ 版本,也就 30MB。(不要直接从 sources 安装,忒大)
3. 为下载的 netbeans-6.8-ml-cpp-linux.sh 文件添加执行权限。
安装界面可能出现中文显示不全的现象,不用管它。
4. 安装结束后,不要启动 ...
阅读全文…
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 以及现下流行的动态语言,它们共同遵循的是同一种 (或相似) "思想",一种基于堆栈式虚拟机的设计,只是实现上各有差异。用某个平台上反汇编结果来反推 "思想" 似乎在培养一种恶劣的习惯,一种因果倒置的逻辑。我有些羡慕 ...
阅读全文…
就我个人而言,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. 修复
先准备好相应的工具软件,包括 ...
阅读全文…
1. 加密
找个目标程序集,用 4.0 加密,注意不要选择其他选项,仅选中 "Quick Settings" 中的 "Anti ILDASM" 即可。因为本文的目的是手工修复元数据表,而不是为了完成一个破解过程。
当我们用 .NET Reflector 或者 Mono Cecil 打开这个加密的程序都会发现出错,可见还是具有一定的防护能力的。接下来,我们就依照 .NET Reflector 给出的错误信息开始手工修复过程。
2. 修复
先准备好相应的工具软件,包括 ...
阅读全文…







