查看电脑网卡mac地址的方法如下: 按windows键和r键进入运行面板; 在运行面板中输入cmd,按回车进入命令提示符中; 在命令提示符中输入ipconfig /all,按回车,在命令的返回中即可找到mac地址。
大家好,学校采用绑定MAC地址,用Ruijie (瑞捷)Supplicant拨号上网,但是它不允许共享上网今天介绍一下如何破解windows下实达认证24正式版。并提供破解补丁下载
首先介绍一下实达认证软件
IEEE 8021x标准在IEEE 802网络结构的基础上,定义了一种基于工作站/服务器模式的输入控制机制和认证协
议,约束网络服务只向那些允许进行访问的用户提供,克服传统网桥的安全性弱点。
实达认证主要是基于8021x,服务器上绑定IP,MAC,端口号,限制客户端使用代理,多网卡
客户端supplicant24检测机器是否安装多网卡,设置代理,若有,则提示"目前系统工作环境与软件运行环境相冲
突,软件不能正常运行!/n(Code: 1)”类似的信息出现,其返回Code值表示了冲突的原因。
Code=2,您安装了多块网卡,和服务器要求的不符合
Code=4,您安装了代理服务器,和服务器要求的不符合
"
现在许多学校多采用这种方式!!
下面介绍如何利用ollydbg解除客户端的多网卡,代理限制
1首先利用peid发现该软件没有加壳,且用VC编写
2装载主程序8021xexe,利用参考找到三处,与之相关的
分别将它们指令改为nop
运行8021xexe,发现有一处,改为NOP时,在有多网卡,代理的情况下并不报错,排除该处,看来余下的两处就是我
们所要找的
容易验证(00407A28)是代理限制,(00408724)是双网卡限制
相关代码如下:静态分析这段代码,发现只要把00407A28处改为jmp 8021x00407AEB,即可跳过code4
00407A25 > 83F8 04 CMP EAX,4
00407A28 0F85 BD000000 JNZ 8021x00407AEB (jmp 8021x00407AEB)
00407A2E 8B8E 7C010000 MOV ECX,DWORD PTR DS:[ESI+17C]
00407A34 85C9 TEST ECX,ECX
00407A36 74 05 JE SHORT 8021x00407A3D
00407A38 E8 93E2FFFF CALL 8021x00405CD0
00407A3D > 6A 04 PUSH 4
00407A3F 8BCE MOV ECX,ESI
00407A41 C786 7C010000 >MOV DWORD PTR DS:[ESI+17C],0
00407A4B E8 70010000 CALL 8021x00407BC0
00407A50 8D4424 04 LEA EAX,DWORD PTR SS:[ESP+4]
00407A54 6A 06 PUSH 6
00407A56 50 PUSH EAX
00407A57 E8 A4C5FFFF CALL 8021x00404000
00407A5C 8BC8 MOV ECX,EAX
00407A5E E8 2DC6FFFF CALL 8021x00404090
00407A63 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00407A67 C74424 20 0300>MOV DWORD PTR SS:[ESP+20],3
00407A6F E8 6CFC0000 CALL <JMP&MFC42#540>
00407A74 6A 04 PUSH 4
00407A76 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00407A7A 68 90224200 PUSH 8021x00422290 ; ASCII "(Code:%d)"
00407A7F 51 PUSH ECX
00407A80 C64424 2C 04 MOV BYTE PTR SS:[ESP+2C],4
00407A85 E8 C2FC0000 CALL <JMP&MFC42#2818>
00407A8A 83C4 0C ADD ESP,0C
00407A8D 8D5424 0C LEA EDX,DWORD PTR SS:[ESP+C]
00407A91 8D4424 04 LEA EAX,DWORD PTR SS:[ESP+4]
00407A95 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00407A99 52 PUSH EDX
00407A9A 50 PUSH EAX
00407A9B 51 PUSH ECX
00407A9C E8 C9FC0000 CALL <JMP&MFC42#922>
00407AA1 50 PUSH EAX
00407AA2 8D4C24 08 LEA ECX,DWORD PTR SS:[ESP+8]
00407AA6 C64424 24 05 MOV BYTE PTR SS:[ESP+24],5
00407AAB E8 60FC0000 CALL <JMP&MFC42#858>
00407AB0 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00407AB4 C64424 20 04 MOV BYTE PTR SS:[ESP+20],4
00407AB9 E8 16FC0000 CALL <JMP&MFC42#800>
00407ABE 8B5424 04 MOV EDX,DWORD PTR SS:[ESP+4]
00407AC2 6A 00 PUSH 0
00407AC4 6A 00 PUSH 0
00407AC6 52 PUSH EDX
00407AC7 E8 70FD0000 CALL <JMP&MFC42#1200>
00407ACC 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00407AD0 C64424 20 03 MOV BYTE PTR SS:[ESP+20],3
00407AD5 E8 FAFB0000 CALL <JMP&MFC42#800>
00407ADA C74424 20 FFFF>MOV DWORD PTR SS:[ESP+20],-1
00407AE2 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4]
00407AE6 > E8 E9FB0000 CALL <JMP&MFC42#800>
00407AEB > 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18]
00407AEF 5E POP ESI
同样双网卡限制代码:静态分析这段代码,发现只要把00408724处改为JMP 8021x004087F3,即可跳过code2
00408722 | 85C0 TEST EAX,EAX
00408724 | 0F84 C9000000 JE 8021x004087F3 (改为JMP 8021x004087F3)
0040872A | 8B8D 7C010000 MOV ECX,DWORD PTR SS:[EBP+17C]
00408730 | 85C9 TEST ECX,ECX
00408732 | 74 05 JE SHORT 8021x00408739
00408734 | E8 97D5FFFF CALL 8021x00405CD0
00408739 |> 6A 02 PUSH 2
0040873B | 8BCD MOV ECX,EBP
0040873D | C785 7C010000 >MOV DWORD PTR SS:[EBP+17C],0
00408747 | E8 74F4FFFF CALL 8021x00407BC0
0040874C | 8D5424 18 LEA EDX,DWORD PTR SS:[ESP+18]
00408750 | 6A 06 PUSH 6
00408752 | 52 PUSH EDX
00408753 | E8 A8B8FFFF CALL 8021x00404000
00408758 | 8BC8 MOV ECX,EAX
0040875A | E8 31B9FFFF CALL 8021x00404090
0040875F | 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
00408763 | C68424 3C03000>MOV BYTE PTR SS:[ESP+33C],2
0040876B | E8 70EF0000 CALL <JMP&MFC42#540>
00408770 | 6A 02 PUSH 2
00408772 | 8D4424 20 LEA EAX,DWORD PTR SS:[ESP+20]
00408776 | B3 03 MOV BL,3
00408778 | 68 90224200 PUSH 8021x00422290 ; ASCII "(Code:%d)"
0040877D | 50 PUSH EAX
0040877E | 889C24 4803000>MOV BYTE PTR SS:[ESP+348],BL
00408785 | E8 C2EF0000 CALL <JMP&MFC42#2818>
0040878A | 83C4 0C ADD ESP,0C
0040878D | 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
00408791 | 8D5424 18 LEA EDX,DWORD PTR SS:[ESP+18]
00408795 | 8D4424 20 LEA EAX,DWORD PTR SS:[ESP+20]
00408799 | 51 PUSH ECX
0040879A | 52 PUSH EDX
0040879B | 50 PUSH EAX
0040879C | E8 C9EF0000 CALL <JMP&MFC42#922>
004087A1 | 50 PUSH EAX
004087A2 | 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
004087A6 | C68424 4003000>MOV BYTE PTR SS:[ESP+340],4
004087AE | E8 5DEF0000 CALL <JMP&MFC42#858>
004087B3 | 8D4C24 20 LEA ECX,DWORD PTR SS:[ESP+20]
004087B7 | 889C24 3C03000>MOV BYTE PTR SS:[ESP+33C],BL
004087BE | E8 11EF0000 CALL <JMP&MFC42#800>
004087C3 | 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18]
004087C7 | 6A 00 PUSH 0
004087C9 | 6A 00 PUSH 0
004087CB | 51 PUSH ECX
004087CC | E8 6BF00000 CALL <JMP&MFC42#1200>
004087D1 | 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
004087D5 | C68424 3C03000>MOV BYTE PTR SS:[ESP+33C],2
004087DD | E8 F2EE0000 CALL <JMP&MFC42#800>
004087E2 | 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
004087E6 | C68424 3C03000>MOV BYTE PTR SS:[ESP+33C],1
004087EE | E8 E1EE0000 CALL <JMP&MFC42#800>
004087F3 |> 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
004087F7 | C68424 3C03000>MOV BYTE PTR SS:[ESP+33C],0
004087FF | E8 D0EE0000 CALL <JMP&MFC42#800>
这样supplicant24正式版的两个限制就解除了,客户端多台机器就可组成局域网,只用一个帐号就能上网了
24正式版与231版相比,破解要困难一些,231版连"目前系统工作环境与软件运行环境相冲突,软件不能正常
运行!"这样的参考都有,参考具多!!
当然也可以用另外的破解思路,举个例子,软件是用VC编写的,出错为messageboxa函数,bpx messageboxa后就可
以把它拦截,动态跟踪,改变标志寄存器,同样可以找到,异曲同工
软件在win98,win2000+sp4,winxp,下测试通过!!!!
1NDIS(DDK)通过驱动程序获取MAC地址
ndis规范中说明,网卡驱动程序支持ioctl_ndis_query_stats接口
参数如下:
OID_802_3_PERMANENT_ADDRESS :物理地址
OID_802_3_CURRENT_ADDRESS :mac地址
于是我们的方法就得到了。
首先,看看注册表,找一找网卡有几块,分别是什么设备名。
具体位置和os有关,2000下在hlm/software/microsoft/windows nt/current version/networkcards。
然后createfile(devicename,)注意,要用linkname,因此
还要加上"//////device//"
接着
deviceiocontrol(hmac,IOCTL_NDIS_QUERY_STATS,
OID_802_3_PERMANENT_ADDRESS/OID_802_3_CURRENT_ADDRESS)
具体的情况可以参看ddk下的
OID_802_3_CURRENT_ADDRESS条目
2NetAPI-2得到MAC (MSDN推荐方法)
#include <windowsh>
//#include <winconh>
#include <stdlibh>
#include <stdioh>
#include <timeh>
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff [30];
}ASTAT, PASTAT;
ASTAT Adapter;
int main (void)
{
NCB Ncb;
UCHAR uRetCode;
char NetName[50];
LANA_ENUM lenum;
int i;
memset( &Ncb, 0, sizeof(Ncb) );
Ncbncb_command = NCBENUM;
Ncbncb_buffer = (UCHAR )&lenum;
Ncbncb_length = sizeof(lenum);
uRetCode = Netbios( &Ncb );
printf( "The NCBENUM return code is: 0x%x /n", uRetCode );
for(i=0; i < lenumlength ;i++)
{
memset( &Ncb, 0, sizeof(Ncb) );
Ncbncb_command = NCBRESET;
Ncbncb_lana_num = lenumlana;
uRetCode = Netbios( &Ncb );
printf( "The NCBRESET on LANA %d return code is: 0x%x /n",
lenumlana, uRetCode );
memset( &Ncb, 0, sizeof (Ncb) );
Ncbncb_command = NCBASTAT;
Ncbncb_lana_num = lenumlana;
strcpy( Ncbncb_callname, " " );
Ncbncb_buffer = (char ) &Adapter;
Ncbncb_length = sizeof(Adapter);
uRetCode = Netbios( &Ncb );
printf( "The NCBASTAT on LANA %d return code is: 0x%x /n",
lenumlana, uRetCode );
if ( uRetCode == 0 )
{
printf( "The Ethernet Number on LANA %d is:%02x%02x%02x%02x%02x%02x/n",
lenumlana,
Adapteradaptadapter_address[0],
Adapteradaptadapter_address[1],
Adapteradaptadapter_address[2],
Adapteradaptadapter_address[3],
Adapteradaptadapter_address[4],
Adapteradaptadapter_address[5] );
}
}
}
3用COM API获取网卡MAC地址
这种方法使用COM API创建一个GUID(全局唯一标识符)并从那里继承MAC地址。
GUID通常用来标识COM组件以及系统中的其他对象。它们是由MAC地址(结合其他东西)计算得来的,表面上MAC地址就包含在其中。
我说表面上是因为事实上并没有包含。我提供这种方法更多的是为了作为反面教材。您也许用这种方法能够得到MAC地址,但
有时候您只会得到随机的十六进制数值。下面的例子十分简单,无需多讲。我们使用CoCreateGuid创建GUID,并将最后六个字节
放入字符串中。它们可能是MAC地址,但并不是必然的。
uuidcpp
#include <windowsh>
#include <iostream>
#include <conioh>
using namespace std;
int main()
{
cout << "MAC address is: ";
// 向COM要求一个UUID。如果机器中有以太网卡,
// UUID最后的六个字节(Data4的2-7字节)应该是本地以太网卡的MAC地址。
GUID uuid;
CoCreateGuid(&uuid);
// Spit the address out
char mac_addr[18];
sprintf(mac_addr,"%02X:%02X:%02X:%02X:%02X:%02X",
uuidData4[2],uuidData4[3],uuidData4[4],
uuidData4[5],uuidData4[6],uuidData4[7]);
cout << mac_addr << endl;
getch();
return 0;
}
4用NetAPI来获取网卡MAC地址
首先在头文件定义中加入#include "nb30h"
#pragma comment(lib,"netapi32lib")
typedef struct _ASTAT_
{
ADAPTER_STATUS adapt;
NAME_BUFFER NameBuff[30];
} ASTAT, PASTAT;
就可以这样调用来获取远程网卡MAC地址了:
CString GetMacAddress(CString sNetBiosName)
{
ASTAT Adapter;
NCB ncb;
UCHAR uRetCode;
memset(&ncb, 0, sizeof(ncb));
ncbncb_command = NCBRESET;
ncbncb_lana_num = 0;
uRetCode = Netbios(&ncb);
memset(&ncb, 0, sizeof(ncb));
ncbncb_command = NCBASTAT;
ncbncb_lana_num = 0;
sNetBiosNameMakeUpper();
FillMemory(ncbncb_callname, NCBNAMSZ - 1, 0x20);
strcpy((char )ncbncb_callname, (LPCTSTR) sNetBiosName);
ncbncb_callname[sNetBiosNameGetLength()] = 0x20;
ncbncb_callname[NCBNAMSZ] = 0x0;
ncbncb_buffer = (unsigned char ) &Adapter;
ncbncb_length = sizeof(Adapter);
uRetCode = Netbios(&ncb);
CString sMacAddress;
if (uRetCode == 0)
{
sMacAddressFormat(_T("%02x%02x%02x%02x%02x%02x"),
Adapteradaptadapter_address[0],
Adapteradaptadapter_address[1],
Adapteradaptadapter_address[2],
Adapteradaptadapter_address[3],
Adapteradaptadapter_address[4],
Adapteradaptadapter_address[5]);
}
return sMacAddress;
}
内网不要用官方的ruijie,用其他第三方方案,比如mentohust,mentosupplicant等。这线学生开发的开源(或免费)登陆端,既没有什么“不允许多网卡”啊、“不允许代理、路由”啊什么的限制,还有个功能就是mac地址伪造。你真实mac地址可以随便,然后再“mac伪造”那里填上绑定的mac
就可以了。
以上就是关于如何获取网卡原生MAC地址和当前MAC地址全部的内容,包括:如何获取网卡原生MAC地址和当前MAC地址、请问,我是用学校局域网上网的,可是要用supplicant 登陆,绑定了mac 还有ip 可是网速很慢,连传奇都登陆、哪种方法获取Mac 地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)