Skip to main content

Posts

Showing posts from February, 2007

firefox 中文包

给家里电脑装了个Firefox,但是是英文版的,老妈说如果不是中文就不用。于是我去找中文包 官方页面上竟然找不到,google下发现了个ftp ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/ / /xpi/zh-CN.xpi 如: ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/2.0.0.1/win32/xpi/zh-CN.xpi 顺便说一下,在这个ftp上转了转,还挺不错,mozilla的软件和插件应有尽有,相见恨晚啊。

ViKing查杀

又中招了,不过好久没有中感染exe文件的病毒了,这种病毒是我承认“有技术含量”的几种之一,至少我不能手工杀光。 表现是桌面很多图标消失(即变成dos程序图标),用exescope看那些exe文件,都多了些ml2**的section头。另外多了几个可疑文件:c:\windows\uninstall\rundl132.exe, c:\windows\logo1_.exe,c:\windows\richdll.dll, 刚发现这些文件时我的对策是:(呵呵,有手工软件就是好)1。杀进程2。用IceSword阻止它再运行3。用FileMon看调用者4。删文件和注册表 后来发现运行一些普通程序也会生成这些文件,再用exescope。。。明白了 在 http://hi.baidu.com/gaodi2002/blog/item/8135d6f97800ab59252df202.html 查到了这是维金病毒,正好2006电脑报合订本光盘里有金山的专杀,用起来还不错,只是一开始还得运行病毒,这个工具似乎先扫描内存,如果没毒就不扫描硬盘了。我晕。但是后来我又杀了一次,报告内存无病毒,可是这次就扫描硬盘了,我也不知道怎么回事。唉。 然后用exescope随便查看几个exe,嗯,好了。 附上金山维金专杀的链接: http://db.kingsoft.com/download/3/246.shtml

google adsense

在Blog文章上方弄了个GoogleAdSense横幅,可能有点恶心。 还是那句话,只为好玩,不为赚钱。 不过我对它不甚满意,因为都好几天了,可是还是和我Blog文章内容“驴唇不对马嘴”,唉。

[转]VB6逆向工程浅析(1-5全)

从stuhack找到的,原链接地址找不到了,感觉讲数组的那部分最有用 信息来源:[OCN]破解组织论坛(ocn.e5v.com/bbs1) nnd,前几天跟踪一个vb程序算法,几天没进展。找了一堆资料,给大家共享! ================================================== 前言 VB的编译有两种方式,一种是P-Code方式,一种是本机代码。P_Code方式是VB 从早期版本保留下来的,也是比较难逆向的一种。而本机代码方式编译的程序已经 和VC很接近了。这里只探讨以本机代码方式编译的程序。由于微软在VB的实现方面 的资料很少,使人觉得VB的逆向比较难。其实掌握一些规律,VB的程序还是很容易 入门的。 这里所提到的知识都是个人的经验,没有什么官方的资料作为依据。所以错误 之处难免,如果你发现什么错误,欢迎指正。 1. 从简单变量的实现开始 一个VB简单变量的表示至少需要12个字节。通常前2个字节是表示类型信息的。 从第5个字节到第8个字节并不总是使用到,实际上很少被使用。我们不妨先叫它 辅助类型信息。从第9个字节开始就是真正的变量的值了。这里有可能存储一个指针 值,也可能是数据,具体是什么取决于变量类型。 另一个值得注意的事实是VB的内存是以4个字节对齐的。即使你使用一个字节, 那至少也要4个字节来表示。而且编译器只初始化它需要的那些字节,剩余的字节 可能是随机数据。下面我们将会看到这些。 想弄明白编译器在内部怎么实现的,最好的方法就是编一段程序跟踪运行看看。 我编写的代码如下: Dim a, i As Byte Dim b, j As Integer Dim c, k As Long Dim d, l As Boolean Dim e, m As String Dim f, n As Date Dim g, o As Double Dim h, p As Single a = &H30 b = 330 c = 66000 d = True e = "hello" f = Now g = 3.1415 h = 1.27 i = a j = b k = c l = d m = e n = f o = g p = h 这段代码在VB的默认设置(速度优化)下编译。然后用od反汇编出来如下: 去

Backlink vs Trackback

上帖提到的关于在Blogger中使用trackback的方法我逐一试过了,结果是 1.那个pinger不支持中文 2.那个脚本不能用,我这Blogger用的都是www2.blogger.com,而脚本include的都是www.blogger.com,不知道是否那个是针对Blogger旧版本的。 3.Haloscan连不上, GFW? 后来在《 这个世界正在 google 什么 》的引用连接中看到了backlink的用法,也慢慢看到了backlink的优点和trackback的缺点,实际上我用trackback主要还是想给csdn.net“投稿”,可是不行,cdsn提供了手工填写URL或RSS地址的办法,可是Blogger偏偏是Atom,添上URL也没用,唉,有待解决 总之现在我启动了本blog的“通知Weblog.com”,先试试Backlink吧,trackback再研究一下

在Blogger中用TrackBack

blogger不支持trackback,令我很郁闷 最近在网上搜,发现还是有解决办法的 有如下几个 1。手工trackback ping, 见Wizbang Standalone Trackback Pinger 2。用Firefox及GreaseMonkey插件,见 TrackBack in blogger 和 Blogger del.icio.us categorising, pinging, and trackback helper 3。第三方网站“中转”,见 www.haloscan.com 不过我没连上过,GFW?

windows下光驱消失

参见:http://www.qi168.com/?108/action_viewspace_itemid_10212.html 我的情况是装了Daemon Tools,且前一阵子手工杀毒时删了很多东西(宁可错删一百,不能漏删一个),估计删了重要文件 尝试卸载--重新搜索,不行 到处搜驱动,没有 windows设备管理器说驱动程序损坏或丢失 用filemon查看,似乎是找不到ubhelper.sys,这正是前一阵子我手工删的,理由是它没有文件信息(如公司,版本之类) 在网上查ubhelper.sys,有的说是病毒,有的说不是,弄得我一头雾水,问了好多朋友都说没这个文件 绝望之际发现了上面的网址,问题得以解决。不过不同的是,我这的两个注册表项叫“upperfilters”项和“loweverfilters”,而且可以看到,项值恰为ubhelper.sys 总结: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11C E-BFC1-08002BE10318} 删除“upperfilters”项和“loweverfilters”项,然后卸载-重新搜索光驱 此外,ubhelper.sys也许真的是木马

[转]一个swf花指令

摘自csdn文章,我就遇到过这样的花指令,使得Sothink SWF Decompiler 3.3 不能正常工作 例1 : 向前跳转的包含无效尺寸数据的死代码。 push True branchifTrue label2 constants ''" label2: push 'a',3 setVariable 你仔细看的话,会发现"constants ''"这行是垃圾代码,它不可能被执行到。然而,理论上,当第二行的结果为"not True"时,它将被执行。因此,反编译器尝试对它进行反编译。 让我们来增大"0x88 - constants"后面的"sentence size",从而包括知道脚本结尾的所有字节。你知道,反编译器将把字节码砍成像这样的3个句子: push True branchifTrue label2 constants label2: push 'a',3 setVariable 如果你试图反编译此SWF文件,根据我前面提到的4个错误,一些反编译器将碰壁。仍旧有些反编译器幸存,但只是显示:"if(false){};"。ASV 3也不能显示此脚本,但是ASV 4能够显示。为了破解这个SWF,我们移除死代码"constant xxxx", (0x88和随后两个字节),然后所有的东西都得到反编译。 例2: 先后跳转的包含无效尺寸数据的死代码。 push 'b' label1: push 'a',3 setVariable branch label2 branch label1 label2: push 'b'是句垃圾代码,我们将修改它,用来使ASV 4碰壁。让我们来修改push 'b'的"length of sentence"。修改"0x96"后面的2个字节的数据,使句子的长度增长到分支Label1之前。这样,反编译器将把字节码作为3个句子: push label1: push 'a',3 setVariable br

CWS转FWS的C代码

原来的代码不能正常编译运行,我做了多处修改 应该是编译和运行环境不同造成的吧。我的环境是VC++2005 /* * cws2fws by Alex Beregszaszi <alex@fsn.hu> * Public domain. * * This utility converts compressed Macromedia Flash files to uncompressed ones. * */ /* * Modified by Wang Lu Feb. 6th, 2007 */ #include <sys/stat.h> #include <fcntl.h> //#include <unistd.h> //WL: no this header file in VC++ 2005 #include "zlib.h" #ifdef DEBUG #define dbgprintf printf #else #define dbgprintf #endif #define NULL ((void*)0) //WL: Dummy main(int argc, char *argv[]) { int fd_in, fd_out, comp_len, uncomp_len, tag, i, last_out; char buf_in[1024], buf_out[65536]; z_stream zstream; struct stat statbuf; if (argc < 3) { printf("Usage: %s <infile.swf> <outfile.swf>\n", argv[0]); exit(1); } fd_in = open(argv[1], O_RDONLY|O_BINARY); //WL: there wasn't O_BINARY originally, and didn't work correctly under VC++ if (fd_in < 0) { perror(&quo

[转]zlib 在 Visual Studio 2005 下编译失败的解决办法

编译zlib 1.2.3出错 inffas32.asm(594) : error A2070: invalid instruction operands inffas32.asm(596) : error A2070: invalid instruction operands inffas32.asm(610) : error A2070: invalid instruction operands inffas32.asm(667) : error A2070: invalid instruction operands 原因在于 It (Microsoft Macro Assembler 8.0, included with Visual C++ 2005 Express ) refuses to assemble a MOVD instruction with a memory operand with an implied size, and requires that "dword ptr" prefix the memory operand. 解决办法: 把inffas32.asm中的4处出错的类似 movd mm4, [esp+0] 的汇编代码,添加dword ptr修饰符,改为 movd mm4,dword ptr [esp+0] 这样就能顺利编译、通过测试了。

手工杀毒必备软件

IceSword -- 杀进程,卸掉注入的DLL HijackThis -- 扫描系统 LspFix + Winsock XP Fix -- 解决关于HijackThis日志中010项(O10 Winsock LSP"浏览器绑架") KillBox -- 删除任意文件 -- 我并不觉得特别好用,推荐下面的Unlocker Unlocker -- 删除任意文件 -- 异常好使,因此也应倍加小心 Autoruns -- 详尽的可能自启动的程序列表,我第一次用时嘴巴张成O型 这个地方有介绍 http://forum.ikaka.com/topic.asp?board=28&artid=6979213 同时也推荐卡卡社区 http://forum.ikaka.com/board.asp?id=3

Windows XP 自动注销

刚遇到的问题,也正是使得我下定决心积累经验的事故: 症状:可以进到登录画面,但是输入密码登录任何一个账户后,只见"正在加载用户设置",然后桌面一闪,接着就是"正在注销" ---- 又回到登录界面了。。。我晕。 安全模式也不起作用 原因:注册表损坏,键值: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下 Userinit = "c:\windows\system32\userinit.exe" 大概是我杀毒时误操作给删了。。唉。 解决过程:当然得改注册表了。 麻烦的是手头没有任何工具光盘,笔记本也不支持软盘。 不过手头有两台好的电脑,一台WindowsXP,另一台Ubuntu,而且有网络,另有移动硬盘,U盘 开始时考虑用移动硬盘启动Linux,不过看似挺麻烦,最终没弄会 后来决定做个U盘启动盘(移动硬盘是俺爹的,不让我随便格式化) 使用软件USBoot 1.66,关于U盘模式还试了一大堆,一开始怎么都不成功,后来发现毛病出在笔记本电脑BIOS中的启动设置。我发现在开电脑前插上U盘后,主板就能认U盘,可以和硬盘"平起平坐"地选择启动顺序,嗯,不错。只怪我一开始没发现,每次都让硬盘排前面。当然最后还是成功了。(失败是晚上的事,成功已经是转天了,结果郁闷了一夜。。) USBoot提供的是MS-DOS 7.1 环境, 这里没有reg命令,不能直接改注册表,于是。。我想到了当年在黑客杂志中看到的一个办法(一直很佩服这个方法的发明者,亏他想的出来) 登录时实际上也有屏保,监测时间似乎是15分钟左右,文件为c:\windows\system32\logon.scr,用户为SYSTEM,不知道这个屏保是否可以禁掉 进了DOS后(幸好系统盘是FAT32的,如果是NTFS的,不知NTFSforDOS是否好用,再不行就上Linux了!),备份好logon.scr,用c:\windows\system32\cmd.exe替换之,然后重启。 得等上15分钟,于是我用另一台机器玩了会游戏。然后,哈哈,我那可爱的命令提示符出现了。 开始犯傻,看了半天reg.exe的帮助,发现有点麻烦,然后就想到用U盘从好的那台Windo

The first step

经过了关于我的电脑的一场虚惊,我终于决定发布我的Blog了,务必把日常的电脑操作经验积累下来,以备不测。 要知道,真正遇到麻烦时没有资料是多么痛苦的事,好在当时我手头有能上网的备用电脑。 虚惊过后,我深刻反思,决定开始积累经验了。 就这么决定了。 开始动手吧!