Subscribe: 木子屋[Dnawo's BLOG] - 网络破解
http://www.mzwu.com/feed.asp?cateID=11
Added By: Feedage Forager Feedage Grade B rated
Language: Chinese simplified
Tags:
classes dex  classes  code  consoleapplication  dex jar  dex  exe  form  jar  login  method consoleapplication  method  studio  注册码 引用内容rar 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: 木子屋[Dnawo's BLOG] - 网络破解

木子屋 - 网络破解



Dnawo's BLOG



Copyright: Copyright 2005 PBlog3 v2.8
 



apk反编译

Fri,19 Apr 2013 00:02:33 +0800

本文说的apk反编译是对apk中的classes.dex文件进行反编译,比较常见的方法有两种,下边分别进行说明。

1.dex2jar + JD-GUI

①.使用WinRAR从apk中解压出classes.dex,放到dex2jar文件夹;
②.在命令行窗口执行命令"dex2jar.bat classes.dex",生成classes_dex2jar.jar;
③.使用JD-GUI打开classes_dex2jar.jar,可查看反编译的源代码,也可以选择"File→Save All Sources"保存文件;

(image)

说明:有时部分代码JD-GUI不能成功反编译,此时可以尝试从jar中单独解压出class文件,然后使用jad进行反编译,可能会成功。下边的批处理实现将jar中所有class文件反编译为java文件:

复制内容到剪贴板(image) 程序代码
@echo off

rem 使用说明:拖动apk到批处理,反编译文件保存于classes文件夹

rd /s /q classes
7za.exe e %1 classes.dex
call dex2jar.bat classes.dex
7za.exe x -otemp classes_dex2jar.jar

for /f %%i in ('dir /b /s temp\*.class') do (
    call :todo %%i
)

del /q classes.dex
del /q classes_dex2jar.jar
rd /s /q temp

start explorer.exe %cd%\classes
goto :eof

:todo
(
    set dir=%~dp1
    md %dir:temp=classes%
    jad -o -d %dir:temp=classes% -s java %1
)

2.baksmali + smali

①.使用WinRAR从apk中解压出classes.dex;
②.在命令行窗口执行命令"baksmali.jar classes.dex"开始反编译,生成到out文件夹;
③.修改smali文件;
④.在命令行窗口执行命令"smali.jar out"进行编译,重新生成dex文件;

说明:这个方法比第一个方法的优点是反编译后可以再编译,缺点是smali代码不容易阅读修改。

3.资源链接

[1].dex2jar:https://code.google.com/p/dex2jar/
[2].JD-GUI:http://java.decompiler.free.fr/?q=jdgui
[3].JAD:http://www.varaneckas.com/jad/
[4].smali:https://code.google.com/p/smali/
[5].7-Zip:http://www.7-zip.org/



GreaseMonkey让网站登录验证码形同虚设

Thu,19 Jan 2012 00:37:51 +0800

通常,为了增加暴力猜解网站用户密码的难度,我们会在网页登录框中增加一个验证码,验证码保存在服务器端,而客户端则使用一张图片显示:验证码在整个登录过程表现为:用户打开登录页面时,服务器产生一个验证码,点击登录后,跳转到登录页面,服务器端检查用户输入的验证码是否正确,若错误,跳回到登录页面,生成一个新验证码让用户再次输入登录。注意,生成新验证码的条件是登录页面刷新了!以前没觉得这有什么问题,今天了解12306自动登录脚本后,发现这问题太严重了,当使用GreaseMonkey时,简直可以无视验证码的存在,原因是借助GreaseMonkey可以在页面使用Ajax提交表单进行登录,这过程不会刷新登录页面,所以服务器不会生成新验证码,因而只要手工输下验证码,脚本就可以不断尝试登录进行猜解用户名密码!1.GreaseMonkey自动登录演示为了减少代码量,便于说明问题,下边演示时验证码不转为图形,直接输出Session,效果一样,不影响结论。Default.asp:复制内容到剪贴板 程序代码<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>登录演示<%RandomizeSESSION("passCode") = Int(8999*Rnd+1000) '生成验证码%>
用户名:
密码:
验证码:<%=SESSION("passCode")%>
Login.asp:复制内容到剪贴板 程序代码<%Response.Charset = "utf-8"Dim usn, usp, code, msgusn = Request.Form("txtUsn")usp = Request.Form("txtUsp")code = Request.Form("txtPassCode")Response.Write(Login(usn, usp, code))'登录函数Function Login(usn, usp, code)    If SESSION("Login") = True Then        Login = "登录成功."    Else        If usn<>"" And usp<>"" Then            If code<>CStr(SESSION("passCode")) Then                Login = "验证码出错,请重新输入."                Exit Function            End If                    If usn="admin" And usp="admin888" Then                SESSION("Login") = True                Login = "登录成功."            Else                Login = "用户名或密码出错,请重新输入."          [...]



Reflector+csc.exe修改.NET应用程序示例

Fri,30 Dec 2011 11:23:07 +0800

假如有个.NET控制台应用程序,功能是让用户输入一个用户名并判断是否有效用户:

(image)

现在我们想修改下,不管用户输入什么用户名都返回是有效的。今天我们使用Reflector+csc.exe来对其进行修改。

一、使用Reflector将控制台应用程序(.exe)还原为.cs文件

(image)

说明:Reflector需要安装FileDisassembler插件。

二、代码修改

用记事本打开Program.cs,修改代码如下:

复制内容到剪贴板(image) 程序代码
namespace ConsoleApplication1
{
    using System;

    internal class Program
    {
        private static bool CheckUser(string username)
        {
            //return (username == "admin");
            return true;

        }

        private static void Main(string[] args)
        {
            Console.Write("UserName:");
            if (CheckUser(Console.ReadLine()))
            {
                Console.WriteLine("Valid");
            }
            else
            {
                Console.WriteLine("Invalid");
            }
            Console.ReadLine();
        }
    }
}

三、使用csc.exe对.cs文件进行编译

csc.exe是VS自带的C#编译器,打开Visual Studio 2008 命令行工具,执行如下命令:

(image) 引用内容
D:\Program Files\Microsoft Visual Studio 9.0\VC>csc.exe /out:F:\ConsoleApplicati
on1\c.exe F:\ConsoleApplication1\Program.cs

执行完成后,打开生成的c.exe看下效果:

(image)



FC魂斗罗1代、2代调人数秘技

Sat,15 Oct 2011 19:24:45 +0800

1.魂斗罗1代30个人

在未按Select和START之前,按"上上下下左右左右BA"(B为单发开枪A为单发跳跃)即可。

(image)

(image)

2.魂斗罗2代10个人

在未按Select和START之前,按"右左下上AB"(A为单发跳跃B为单发开枪)即可。

(image)

(image)



我们能相信自己的眼睛吗?

Thu,25 Aug 2011 00:17:35 +0800

几天前,一个客户向我们提交了一个病毒文件样品(SHA1: fbe71968d4c5399c2906b56d9feadf19a35beb97, 检测认定为TrojanDropper:Win32/Vundo.L病毒)。这种特洛伊病毒在hosts文件里劫持“vk.com” 和 “vkontakte.ru”这两个域名(两个都是俄罗斯的社交网站),把它们重定向到92.38.209.252,但它们的实现方法却很独特。

要想劫持一个网站,把它重定向到自己指定的地址,黑客通常的做法是修改Windows系统里位于%SystemRoot%system32driversetc目录下的hosts文件。然而,当我们打开这个受感染的计算机上的hosts文件时,却没有发现任何的跟“vk.com” 和 “vkontakte.ru”相关的条目,就像你在下图中看到的一样。

(image)

但当我们显示出隐藏文件时,却看到了另外一个“hosts”文件。是个隐藏文件,你可以在下图中看见它们:

(image)

在etc目录下有两个名称完全相同的文件,都是“hosts”!这怎么可能?

大家都知道,一个文件夹里不可能存在两个名称完全一样的文件。我们把这两个文件名拷贝到notepad里,存成Unicode文本文件,用十六进制文件编辑器打开,看到如下的结果(上面的是第一个“hosts”文件,下面的是第二个“host”文件):

(image)

在Unicode(UTF-16)中,0x006F 和 0x6F 表示的是相同的ASCII字符,都是字符“o”。但Unicode中的0x043E是个什么字符呢?从Unicode字符表中我们能找到了它(范围:0400-04FF)。下图就是部分的字符表。

(image)

我们可以看到,Unicode 0x043E 是一个西里尔字母(斯拉夫语言, 如俄语和保加利亚语所用的字母),它跟英语字符“o”非常的相似。

所以,这隐藏的“hosts”事实上才是我们真正的hosts文件。当我们打开这个文件,发现在文件的末尾多了两行内容:

(image)

谜团解开了!

这并不是我们第一次发现黑客用Unicode字符来迷惑人们。在2010年8月,一个中国黑客揭示了一个使用Unicode控制字符来误导人们点击可执行文件的骗术。黑客使用Unicode控制字符0x202E (RLO)来反转文件名中的特定部分,使你在Windows中看到的文件名变成了另外一个样子。

例如,建一个叫做“picgpj.exe”的文件,就像下面这样:

(image)

文件名中的“gpj.exe”部分是特意设计的。当你把一个RLO字符放到文件名中“gpj.exe”部分之前后,这个文件名变成了下面这个样子:

(image)

黑客通常会给这样的文件加上一个图片图标。粗心的人就会把这个文件当成一个图片,轻率的双击打开它,实际上是运行了一个可执行文件。很显然,这种骗术对于Unicode敏感的程序是无效的,但如果用人眼识别,你很难发现问题。

我们能相信自己的眼睛吗?答案是…不能。



ILdasm+ILasm修改.NET应用程序示例

Wed,20 Jul 2011 11:57:08 +0800

假如有个.NET控制台应用程序,功能是让用户输入一个用户名并判断是否有效用户:现在我们想修改下,不管用户输入什么用户名都返回是有效的。在Reflector中打开应用程序,发现作者没有对源代码进行加密/混淆,并且判断逻辑由CheckUser函数完成:好了,这样子我们就可以使用ILdasm+ILasm对其进行修改了。一、使用ILdasm将exe文件反编译为IL代码打开VS2008命令行工具,执行如下命令:复制内容到剪贴板 程序代码D:\Program Files\Microsoft Visual Studio 9.0\VC>ildasm /out=f:\test\ConsoleApplication1.il f:\test\ConsoleApplication1.exe将会生成ConsoleApplication1.res和ConsoleApplication1.il两个文件。二、IL代码修改用记事本打开ConsoleApplication1.il文件,找到如下内容:复制内容到剪贴板 程序代码.method private hidebysig static bool  CheckUser(string username) cil managed{// 代码大小       17 (0x11).maxstack  8IL_0000:  ldarg.0IL_0001:  ldstr      "admin"IL_0006:  call       bool [mscorlib]System.String::op_Equality(string,                                                               string)IL_000b:  brfalse.s  IL_000fIL_000d:  ldc.i4.1IL_000e:  retIL_000f:  ldc.i4.0IL_0010:  ret} // end of method Program::CheckUser修改第IL_000f行内容并保存:复制内容到剪贴板 程序代码IL_000f:  ldc.i4.1三、使用ILasm将IL代码编译成exe文件在VS2008命令行工具执行如下命令:复制内容到剪贴板 程序代码D:\Program Files\Microsoft Visual Studio 9.0\VC>ilasm /resource=f:\test\ConsoleApplication1.res /output=f:\test\ConsoleApplication2.exe /exe f:\test\ConsoleApplication1.ilMicrosoft (R) .NET Framework IL Assembler.  Version 2.0.50727.4927Copyright (c) Microsoft Corporation.  All rights reserved.Assembling 'f:\test\ConsoleApplication1.il'  to EXE --> 'f:\test\ConsoleApplication2.exe'Source file is ANSIAssembled method ConsoleApplication1.Program::MainAssembled method ConsoleApplication1.Program::CheckUserAssembled method ConsoleApplication1.Program::.ctorAssembled method ConsoleApplication1.Properties.Settings::get_DefaultAssembled method ConsoleApplication1.Properties.Settings::.ctorAssembled method ConsoleApplication1.Properties.Settings::.cctorCreating PE fileEmitting classes:Class 1:        ConsoleApplication1.ProgramClass 2:        ConsoleApplication1.Properties.SettingsEmitting fields and methods:GlobalClass 1 Methods: 3;Class 2 Fields: 1;      Methods: 3;Resolving local member refs: 5 -> 5 defs, 0 refs, 0 unresolvedEmitting events and properties:GlobalClass 1Class 2 Props: 1;Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolvedWriting PE fileOperation completed successfully结果生成一个ConsoleApplication2.exe文件,运行看下:可以了 [...]



Windows7:Visual Studio 2008试用版的评估期已经结束解决方法

Sat,30 Apr 2011 08:51:14 +0800

(image)

以前在Windows2003碰到这个问题时,都是到"控制面板→添加或删除程序"选择删除VS2008,然后会有个地方让输入序列号升级就可以了,但这次没有输序列号的地方:

(image)

百度后说是因为我现在是使用Windows7系统,微软在Windows7系统中将输序列号的地方隐藏了[1],需要下载一款CrackVS2008ForWindows7的软件将输入框显示出来即可[2][3],试了下果然好用:

(image)

(image)

(image)

注释说明

[1].windows 7下vs2008破解试用版的评估期结束:http://apps.hi.baidu.com/share/detail/30333016
[2].CrackVS2008ForWindows7下载:http://ishare.iask.sina.com.cn/f/8254416.html
[3].Visual Studio 2008正式版序列号:PYHYP-WXB3B-B2CCM-V9DX9-VDY8T



一步搞定WinRAR注册

Sat,15 Jan 2011 14:16:55 +0800

WinRAR不强制注册,但过了试用期每次打开它都会弹出一个注册提示:

(image)

下边提供几个注册码,大家只要复制相应版本的注册码,粘贴到记事本中,再保存到WinRAR安装文件夹中即可,保存文件名为rarreg.key,默认安装文件夹为C:\Program Files\WinRAR\。

WinRAR4.01注册码

(image) 引用内容
RAR registration data
MFZYW.NET
Unlimited Company License
UID=4aee223094e315d53b9e
64122122503b9ebc644eb9b3c79c51f627529601231143dbeaf2e7
7fbf4c490ec22a156bad60fce6cb5ffde62890079861be57638717
7131ced835ed65cc743d9777f2ea71a8e32c7e593cf66794343565
b41bcf56929486b8bcdac33d50ecf7739960c9efe6f48b7431aeb3
6591672135fe806fcd4ff26d85d05ef5afff9b1e3b7c7551fea268
b5d29f7a0f896abf9559e4394374bc3c30aeac0843c11e0560ad69
9356a86749410ce0058f300e24a185c0cc7590d0543a3625819200

WinRAR3.9注册码

(image) 引用内容
RAR registration data
MFZYW.NET
Unlimited Company License
UID=4aee223094e315d53b9e
64122122503b9ebc644eb9b3c79c51f627529601231143dbeaf2e7
7fbf4c490ec22a156bad60fce6cb5ffde62890079861be57638717
7131ced835ed65cc743d9777f2ea71a8e32c7e593cf66794343565
b41bcf56929486b8bcdac33d50ecf7739960c9efe6f48b7431aeb3
6591672135fe806fcd4ff26d85d05ef5afff9b1e3b7c7551fea268
b5d29f7a0f896abf9559e4394374bc3c30aeac0843c11e0560ad69
9356a86749410ce0058f300e24a185c0cc7590d0543a3625819200

WinRAR3.80注册码

(image) 引用内容
RAR registration data
Federal Agency for Education
1000000 PC usage license
UID=b621cca9a84bc5deffbf
6412612250ffbf533df6db2dfe8ccc3aae5362c06d54762105357d
5e3b1489e751c76bf6e0640001014be50a52303fed29664b074145
7e567d04159ad8defc3fb6edf32831fd1966f72c21c0c53c02fbbb
2f91cfca671d9c482b11b8ac3281cb21378e85606494da349941fa
e9ee328f12dc73e90b6356b921fbfb8522d6562a6a4b97e8ef6c9f
fb866be1e3826b5aa126a4d2bfe9336ad63003fc0e71c307fc2c60
64416495d4c55a0cc82d402110498da970812063934815d81470829275

WinRAR3.71注册码

(image) 引用内容
RAR registration data
cafevn
Single PC usage license
UID=bff246844b5c5708595a
6412212250595aa9dfb5db06ca5c5b29cb38d3c346df871e689fcd
26d40cd6724c7fea7a256035c6ab9048e2c5c62f0238f183d28519
aa87488bf38f5b634cf28190bdf438ac593b1857cdb55a7fcb0eb0
c3e4c2736090b3dfa45384e08e9de05c58601faaa5bf2fd204421a
0af4a66c04f5f95c750b942c262c8defc92d51753d37c41772b696
179d2401468afd8cdf6b526bd713b62d9d1c8b39f8f5c862600bd1
6f2be0ead43d89dc20da9c292bbc37165bb690729a430802790431



CodeSmith Professional 4.1注册方法

Tue,11 Jan 2011 15:53:02 +0800

(image)

(image)

(image)

(image)

(image)



用peid查看dll文件用什么语言编写的

Fri,19 Nov 2010 09:59:42 +0800

有时拿到一个dll,它可能是用C#编写的,也可能是VB或C++,下边介绍一个工具peid,它能快速查看dll文件是用什么语言编写的。

运行peid,打开一个dll文件,界面上立即显示出它是用什么语言编写的:

(image)

peid下载地址:http://www.pediy.com/tools/unpack/File_analysers/peid/peid.rar