1.首先介绍PE结构
Windows系统下的可执行文件,是基于Microsoft设计的一种新的文件结构,此结构被称之为PE结构。PE的意思是Portable Executable(可移植的执行体),所有Win32执行体都是用PE文件格式,其中包括SYS、DLL、EXE、COM、OCX等。(不管是学习逆向、破解还是安全,了解PE文件格式都是非常必要的。)
PE文件的第一个部分是IMAGE_DOS_HEADER,大小为64B,这里面有两个重要的数据成员。第一个为e_magic,这个必须为MZ,即0x5A4D。当然,0x5A4D这是典型的小端格式(Little Endian);另一个重要的数据成员是最后一个成员e_lfanew,这个成员的值为IMAGE_NT_HEADERS的偏移。在IMAGE_DOS_HEADER和IMAGE_NT_HEADERS之间一个DOS Stub,这段程序用于在DOS环境中显示一个字符串,“This program cannot be run in DOS mode”,现在DOS早已灭绝,这段数据由编译器生成,可以用0填充或者删除(删除的话要移动很多数据)。
IMAGE_DOS_HEADER的定义如下:
IMAGE_DOS_HEADER STRUCT {//(注:最左边是文件头的偏移量。) +0h WORD e_magic //Magic DOS signature MZ(4Dh 5Ah) DOS可执行文件标记 +2h WORD e_cblp //Bytes on last page of file +4h WORD e_cp //Pages in file +6h WORD e_crlc //Relocations +8h WORD e_cparhdr //Size of header in paragraphs +0ah WORD e_minalloc //Minimun extra paragraphs needs +0ch WORD e_maxalloc //Maximun extra paragraphs needs +0eh WORD e_ss //intial(relative)SS value DOS代码的初始化堆栈SS +10h WORD e_sp //intial SP value DOS代码的初始化堆栈指针SP +12h WORD e_csum //Checksum +14h WORD e_ip //intial IP value DOS代码的初始化指令入口[指针IP] +16h WORD e_cs //intial(relative)CS value DOS代码的初始堆栈入口 +18h WORD e_lfarlc //File Address of relocation table +1ah WORD e_ovno //Overlay number +1ch WORD e_res[4] //Reserved words +24h WORD e_oemid //OEM identifier(for e_oeminfo) +26h WORD e_oeminfo //OEM information;e_oemid specific +29h WORD e_res2[10] // Reserved words +3ch DWORD e_lfanew //Offset to start of PE header 指向PE文件头 } IMAGE_DOS_HEADER ENDS 用C32Asm查看一个EXE程序的结构:
原因:是卡巴斯基把一个桌面进程文件隔离了
解决方法:ctrl+Alt+delete进入任务管理器,把卡巴斯基启动,然后在卡巴斯基扫描里找到该文件,再把该文件添加为信任。
1、File ended while scanning use of \@newl@bel
运行时显示错误:
! File ended while scanning use of \@newl@bel. <inserted text> \par l.8 \begin{document} ? 解决方法: 将文件夹中除了tex文件、bib文件和cls文件之外的文件全部删除,重新运行一次即可!
先去网上下载dirextx9.0bsdk.exe
然后解压到你指定的目录。
配置方法为,打开vc,选择菜单项视图、属性,vc++目录,在弹出的对话框中的show directories for中选择include files,添加配置如下(假设directx sdk安装在D:\dxsdk目录下):
D:\dxsdk\include
D:\dxsdk\samples\c++\directshow\baseclasses
D:\dxsdk\samples\c++\common\include
再在show directories for中选择 library files,添加配置如下:
D:\dxsdk\lib
D:\dxsdk\samples\c++\directshow\baseclasses\debug
D:\dxsdk\samples\c++\directshow\baseclassed\release//没有的话可省掉。
注意可以先去D:\dxsdk\samples\c++\directshow\baseclasses将baseclasses编译下,也可不要因为这样做的话可以编译出四个版本:debug,debug_unicode,release_unicode,release。
可能会问题依旧,调整一下include files的顺序吧,把他们都放在最后,例如我的环境: $(VCInstallDir)include $(VCInstallDir)atlmfc\include $(VCInstallDir)PlatformSDK\include $(FrameworkSDKDir)include D:\DX90SDK\Include D:\DX90SDK\Samples\C++\DirectShow\BaseClasses D:\DX90SDK\Samples\C++\Common 编译运行出现 winnt.h(5940)错误问题的解决
Note: C++ does not support default-int第一类问题的解决:错误发生在:operator=(LONG);函数定义中,这是因为在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整 形;但是vs2005不支持默认整形,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用wd4430来解决;具体的在工程选项中的c+ +/Command Line中添加/wd4430即可。
产考于:http://blog.sina.com.cn/s/blog_4fe4477501018f76.html
R.java文件介绍
HelloWorld工程中的R.java文件
package com.android.hellworld;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int icon=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
}
}
R.java文件中默认有attr、drawable、layout、string等四个静态内部类,每个静态内部类分别对应着一种资源,如layout静态内部类对应layout中的界面文件,其中每个静态内部类中的静态常量分别定义一条资源标识符,如public static final int main=0x7f030000;对应的是layout目录下的main.xml文件。
由于目前【drawable-*dpi】目录下都只有icon.png一个图片文件,因此此时不同详述的同名的icon.png文件在drawable内部类总只有一个icon属性。如果我们在【drawable-*dpi】目录下再添加一幅图片,则内部类中会自动的添加一个icon属性。
PS:添加资源的命名规则:资源文件只能以小写字母和下划线做首字母,随后的名字中只能出现 [a-z0-9_.] 这些字符,否则R.java文件不会自动更新,并且eclipse会提示错误。
理解了R.java文件中内容的来源,即当开发者在res/目录中任何一个子目录中添加相应类型的文件之后,ADT会在R.java文件中相应的内部类中自动生成一条静态int类型的常量,对添加的文件进行索引。如果在layout目录下再添加一个新的界面,那么在public static final class layout中也会添加相应的静态int常量。相反当我们在res目录下删除任何一个文件,其在R.
1. 前言 最近在摸索git + gerrit代码审核的工作模式,需要安装gerrit服务器,经过一阵折腾,走了不少弯路,在此做下笔记,以便自己或者他人参考。有误的地方请指教。
我的环境如下:
环境
IP
说明
Windows XP
192.168.1.100
客户端web访问gerrit服务器
虚拟机中的linux
(用的是CentOS)
192.168.1.101
安装gerrit服务器
2. 安装 Gerrit有很好的帮助手册,可以参考其安装指南:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.5.2/install-quick.html
2.1. 安装git 在root用户下安装git,这个就不用说了。
2.2. 安装java 也是在root用户下安装java。
Gerrit是由Java开发的,被封装为一个war包。所以要先检查你的linux环境是否已经安装了java,通过以下指令查看:
$ java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze2)
OpenJDK Client VM (build 14.0-b16, mixed mode, sharing)
如果没有安装,下载个JDK安装(要求版本在1.6以上),可以到官网下载:
官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html
提示:我下载的JDK文件名是jdk-6u41-linux-i586-rpm.bin,下载完后在终端无法运行,后来发现是,要先设置JDK文件的执行权限:
# chmod o+x ./jdk-6u41-linux-i586-rpm.bin
然后运行之(以管理员身份运行):
# ./jdk-6u41-linux-i586-rpm.bin Unpacking...
Checksumming...
Extracting...
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.
查看局域网内所有IP :arp -a
查看局域网内所有主机名: net view
查看IP地址对应的主机名和MAC地址: nststat -a 192.168.0.101
极点五笔,搞不好容易遇到下边两个问题:
问题1:极点五笔状态栏不显示了,怎么办?
解决办法:同时按下Ctrl+←(左方向键)。
问题2:极点五笔候选选字框不见了,怎么办?
解决办法:同时按下Ctrl+→(右方向键)。
同时提供几个极点五笔极有用的快捷键:
剪切板查询不认识的字:Ctrl + ?
加入词库:Ctrl + =
减除词库:Ctrl + -
简体繁体输入切换:Ctrl + J
输出符号:Shift+Esc
使用vs的内存检测有以下几种方法。
在debug模式下以F5运行:
方法一:
#define CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> //在入口函数中包含 _CrtDumpMemoryLeaks(); //即可检测到内存泄露
//以如下测试函数为例:
int main()
{
char* pChars = new char[10];
_CrtDumpMemoryLeaks();
return 0;
} F5运行输出窗口会得到:
Detected memory leaks!
Dumping objects ->
{58} normal block at 0x00341A38, 10 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD Object dump complete.
以上方法没有输出
注意:
1.在VS2010下测试的时候,发现_CrtDumpMemoryLeaks();这句必须放在函数结束处,放在主函数入口处输出窗口不会输出内存泄露信息
2.{}中的数字指明这块内存是程序中总计第几个被申请的,这种方法没有行号和其他信息输出。我们可以定义:
#ifdef _DEBUG
#define New new(_NORMAL_BLOCK, __FILE__, __LINE__)
#endif
#define CRTDBG_MAP_ALLOC #include <stdlib.
NVRAM: Non-Volatile RAM. The target is to have a electrical device that could be accessed quite fast, most of the time the content is calculated by bytes and the content could be saved after power down. There are different technical ways to implement this concept such as EEPROM which is very common. Please note, in mobile phone design, most of the time one or two sectors of ROM (most of the time it is FLASH) will be used to simulate NVRAM, the only reason is cost saving since ROM is a "
Difference among as follow, as follows and as following as follows. 1. Usually, using 'as follows' is better. People who would liked to join this session as follows. 2. And, 'be as follows' is also not recommended. Difference between 'as follows' and 'as below'. 1. 'As follows' indicates that the explanation immediately follows that phrase, whereas, 'as below' indicates something lower on the page. 2. 'As follows' is more formal.
注册微信公众平台后要成为开发者,token可以随意定义,url输入的不行就通过不了,会提示url超时,或者你的服务器没有正确响应Token验证,请阅读消息接口使用指南,下面你要有你的主机,写一个php文件,内容如下,将此php文件的url地址写上就ok了
<?php define ( "TOKEN", "dismath" ); $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //随机字符串 if($this->checkSignature()){ echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET ["signature"]; $timestamp = $_GET ["timestamp"]; $nonce = $_GET ["nonce"]; $token = TOKEN; $tmpArr = array ( $token, $timestamp, $nonce ); sort ( $tmpArr ); $tmpStr = implode ( $tmpArr ); $tmpStr = sha1 ( $tmpStr ); if ($tmpStr == $signature) { return true; } else { return false; } } }
mount了mfs后,重新挂载之后,出现如下错误: /usr/local/mfs/bin/mfsmount -H 192.168.103.101 /mnt/ fuse: bad mount point `/mnt/': Transport endpoint is not connected see: /usr/local/mfs/bin/mfsmount -h for help 解决方法: 1、kill进程; 2、umount 3、重新mount ps aux | grep mfs umount –l /mnt /usr/local/mfs/bin/mfsmount -H 192.168.103.101 /mnt/
使用闪电邮、outlook都是这样。
由于小红帽的反垃圾邮件导致的。
the word [SPAM] added to subject line http://www.winvistatips.com/word-spam-added-subject-line-t530680.html
Office2010安装错误1402问题 在WIN7系统下,安装Office 2010到一半时,提示:错误1402,安装程序无法打开注册表项
unknown\components\1FA18F7974E099CD0AF18C3B9B1A1EE8\b25099274a207264182,
请确定你有访问该注册列表的权利或者与微软产品支持(PSS)联系的错误。
用Windows Install Clean Up把所有带office字样的都卸载了,还是出错。
解决办法:
1. 依次点击开始,所有程序,附件,右键单击命令提示符,选择以管理员身份运行。
2. 复制或手动输入下列命令,
secedit /configure /cfg %windir%\inf\defltbase.inf /db defltbase.sdb /verbose
3. 待运行完成后,重新尝试安装,OK了。
---------------
试验了各种方法。这种才是可以的。
http://blog.sina.com.cn/s/blog_555ea2470101831d.html
系统:ubuntu 10.04
1: pci设备的网卡
lspci -v
Ubuntu 中,通常有线网卡为eth0,无线网卡则为wlan0,后续增加的以此类推(可能某些无线网卡型号命名为eth1,而非wlan0)。
ifconfig简介
ifconfig 是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的(说的是喜欢动命令的人……)。
查看系统网卡信息
ifconfig
激活/禁用网卡
激活网卡
sudo ifconfig 网卡设备名 up
查看网卡信息 ifconfig 网卡设备名
启用/禁用网络
sudo /etc/init.d/networking start
iwconfig
用于查看无线连接情况
qii@ubuntu:~$ iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
查看网卡设备信息
查看网卡生产商,型号。
qii@ubuntu:~$ lspci | grep -i net
03:00.0 Ethernet controller: Realtek Semiconductor Co.
1、取整函数定义及分类 取整函数是一类将实数映射到相近的整数的函数。
常用的取整函数有两个,分别是下取整函数和上取整函数。
下取整函数在数学中一般记作,在计算机科学中一般记作 floor(x);
上取整函数在数学中一般记作,在计算机科学中一般记作ceil(x)。
2、性质:(仅列举计算机学习中经常用到的性质) a) , 等号成立当且仅当x为整数。
b) 下取整函数为等幂运算: .
c) 对任意的整数 k 和任意实数 x,
d) 一般的数值修约规则可以表述为将x映射到 floor(x + 0.5).
e) .
f) 对于整数k有:
3. 对数与取整函数的关系 二者关系为:
证明:
令,
则 ①
由式①可得
②,
进而可得
因为 , 所以 .
所以 .
4、向下取整与向上取整的转换方法 我们知道,一般在程序语言中,两个整数相除都是向下取整。例如,5/3=1,2/3=0;
那么向上取整该如何表示呢,也就是说,向上取整能不能通过向下取整的方式来表达?
当然可以,下面是转换公式:
课程讲师:小明哥
课程简介:本课程是视频语音教程,其内容主要介绍当前市面上的几款CMS(内容管理系统)的优势和抉择,以及如何从完全空白的电脑安装网页代码编辑器、DEDECMS的PHP环境与MYSQL环境,到本地能够正常访问。中间涉及到大量实战技巧与经验分享,如:“正常安装DEDECMS,登录后台却提示用户不存在等预防技巧”等,同学们可不要错过啦~~
迅雷高速下载:http://kuai.xunlei.com/d/dv92BAKnSwB05dpQ2c8
优酷在线观看:http://v.youku.com/v_show/id_XNDkzNTE3MjM2.html
(深夜,房间案头上烛火忽明忽现,狄仁杰大人还在整理最近的案子) 元芳:大人,最近流行一种病毒,俗称bug。 大人:元芳,你怎么看? 元芳:大人,我看其中必有蹊跷。 草民:报~~~~草民参见大人! 大人:起来说话。 草民:大人,前些日子我电脑瘫痪了,一直不明白是怎么回事,这不我把电脑带来了,还请李元芳给小的瞧瞧。 大人:元芳,去瞅瞅怎么回事。 元芳:是,大人。 数时辰过去了…. 大人:元芳,这事你怎么看? 元芳:报告大人,这就是我之前给您提过的bug。 大人:草,bug!怎么又是bug!草,bug! 草民:大……大……大人,全是小的一时疏忽,请大人息怒! 大人:元芳,这事如何解决,你可有办法? 元芳:大人,等等,您……您刚说什么来着? 大人:我说,元芳,这事你怎么看? 元芳:不,不是这句,这句前一句! 大人:我想想,难道是:草,bug!怎么又是bug!草,bug!? 元芳:大人,妙哇!妙!大人真乃神人也!这样的妙招都能想出来! 大人:元芳,就别卖关子了,你不妨直说。 元芳:大人可听说过草坝阁? 大人:草,bug? 元芳:是的,大人,草坝阁是一个专注于网络技术的交流平台,它对许多软件的破解都有着深刻的理解和实施的方案。我以前好多朋友们的网络问题都是去草坝阁里看到的解决方案。 大人:速速带这位老伯去草坝阁!它的地址是什么? 元芳:报告大人,它的地址相当好记:三大不留点草坝阁点亢(www.caobug.com)! 大人:速度将这个解决方案张贴在公告榜上,让众人都得以知晓! 元芳:是,大人,元芳这就去办!本文由 网络营销论坛创作。
ipconfig - windows ifconfig - unix/linux interface config iwconfig - linux interface wireless config <网卡名> 可以用ifconfig -a 命令获得 iwconfig <网卡名> 查看无线网卡的状态 iwconfig <网卡名> key off 禁用WEP密钥 iwconfig <网卡名> key s:<密码> 设置WEP密钥 iwconfig <网卡名> txpower 30mW 设置网卡输出功率(需要网卡支持) iwconfig <网卡名> mode master 设置网卡为AP模式(需要网卡支持) iwconfig <网卡名> mode managed 设置网卡为客户端模式(需要网卡支持) ifconfig 列出已启动的网卡 ifconfig -a 列出所有网卡 ifconfig <网卡名> up 启动某个网卡 ifconfig <网卡名> down 停用某个网卡 ifconfig <网卡名> hw ether <MAC地址> 更改某个网卡的MAC地址