神州数码解密程序32位汇编版

原创 2006年06月06日 16:47:00

out33.asm

;triones produce it form 12:04 2006-1-10 to 11:30 2006-1-12 Windows XP SP1.
;作为对32位汇编熟悉的一个测试。
;具体版权声明与使用说明请参见"使用说明",欢迎交流与探讨.

.386
.model flat, stdcall
option casemap :none

include		windows.inc
include		user32.inc
includelib	user32.lib
include		kernel32.inc
includelib	kernel32.lib
include		comdlg32.inc
includelib	comdlg32.lib
include		shell32.inc
includelib	shell32.lib

ICO_MAIN	equ	1000
DLG_MAIN	equ	1000
IDM_MAIN	equ	4210

IDC_INF		equ	1001
IDC_Load	equ	1002
IDC_Pass	equ	1003
IDC_Password	equ	1004
IDC_OPEN	equ	1005
IDC_copyright	equ	1006
IDC_help 	equ	1007
IDC_EXIT	equ	1100


.data?
hInstance	dd	?
hWinMain	dd	?
szProfileName	db	MAX_PATH dup (?)	;主要路径
szPass		db	100 dup (?)
lpInfo		dd	?				;A Piont to pinot some output infomation
icheck		dd	?

.const
theKey		db	0Bh,1Eh,49h,60h,0Fh,78h,27h,5Eh,25h,02h,77h,2Ah,55h,20h,35h,7Ah,1Bh,0Eh,59h,47h
szCopyRight	db	10,"江西理工大学 环境032班  ",10,10,9,"章文雄",10,10,"  版权所有  2006(c)",0
szCRCaption	db	"版权声明",0
szHelp		db	22h,"使用说明",22h,"文件丢失!",0
szHelpName	db	"使用说明.txt",0
szWarning	db	"出错:",10,10,"-不存在密文",10,"-非神州数码INI文件",0
szhaha		db	"搞笑呢大哥,这哪个牛人的密码哦,谢绝程序测试 -_|||",0
szFilter	db	'*.ini',0,'*.ini',0,'所有文件',0,'*.*',0,0
szALoad		db	'C:/Progra~1/Digita~1/Digial~1'
szFileName	db	'/dot1xS~1.ini',0		;文件名修改这里
szSec		db	'登录参数',0		;小节名修改这里
szKey		db	'Password',0		;键名修改这里
FindInOwn	db	'-当前目录Find,解密结果:',0
FindInLoad	db	'-安装文件夹Find,解密结果:',0
FindInNone	db	'-未找到或密码未保存,请指定或输入密文:',0
FindInput	db	'-以下即输入密文的解密结果:',0
FindInpoint	db	'-指定文件分析结果:',0

.code


;主要的解密操作过程
Out33		proc
	
	pushad
	
	lea esi,offset szPass
	lea ebx,offset theKey
	mov edi,esi
	xor eax,eax
	xor ecx,ecx
	cld
	;主限制了16位的密码解密,如果要增加长度,可以把32改大点喽.
	.while ecx < 32
		lodsb
		.break .if al==0
		inc ecx
		mov	ah,al
		lodsb
		.break .if al==0
		inc ecx
		and	ax,4f4fh
		.if al > 40h
			sub	al,37h
		.endif
		.if ah > 40h
			sub	ah,37h
		.endif
		shl ah,4
		add al,ah
		mov ah,[ebx]
		xor al,ah
		.if (al < 21h)||(al > 7Eh)
			invoke	MessageBox,hWinMain,addr szhaha,NULL,MB_OK or MB_ICONWARNING
			jmp	@F
		.endif
		stosb
		inc ebx
	.endw
	xor al,al
	stosb
	invoke	SetDlgItemText,hWinMain,IDC_Password,addr szPass
@@:	
	popad	
	ret

Out33 endp

GetInput	proc
	
	pushad
	invoke	GetDlgItemText,hWinMain,IDC_Pass,addr szPass,128
	invoke	SetDlgItemText,hWinMain,IDC_INF,addr FindInput
	invoke	Out33
	popad	
	ret

GetInput endp


;从INI文件中取得密文
GetPass	proc

	local	@szBuffer[100]:byte
	pushad
	
	invoke	GetPrivateProfileString,addr szSec,addr szKey,NULL,addr szPass,99,addr szProfileName
	.if	eax == 0
		mov	eax,icheck
		.if	eax == 0
			invoke	GetPrivateProfileString,addr szSec,addr szKey,NULL,addr szPass,99,addr szALoad
			.if	eax == 0
				invoke	SetDlgItemText,hWinMain,IDC_INF,addr FindInNone
				jmp	@F
			.endif
			invoke	SetDlgItemText,hWinMain,IDC_Load,addr szALoad
			mov	lpInfo,offset	FindInLoad
			jmp	secYes
		.endif
		invoke	MessageBox,hWinMain,addr szWarning,NULL,MB_OK or MB_ICONWARNING
		jmp	@F
	.endif
	invoke	SetDlgItemText,hWinMain,IDC_Load,addr szProfileName
secYes:
	invoke	SetDlgItemText,hWinMain,IDC_INF,lpInfo
	invoke	SetDlgItemText,hWinMain,IDC_Pass,addr szPass
	invoke Out33
@@:
	popad
	ret

GetPass	endp

StratGet proc

	pushad
	invoke	GetCurrentDirectory,MAX_PATH,addr szProfileName
	mov	esi,offset szProfileName
	invoke	lstrlen,esi
	mov	ecx,offset szFileName
	.if	byte ptr [esi+eax-1] == '/'
		inc	ecx
	.endif
	invoke	lstrcat,esi,ecx
	mov	icheck,0
	invoke	GetPass
	popad
	ret
	
StratGet endp

GetFileName	proc

	local	stFile:OPENFILENAME
	
	pushad
	invoke	RtlZeroMemory,addr stFile,sizeof stFile
	mov	stFile.lStructSize,sizeof stFile
	push	hWinMain
	pop	stFile.hwndOwner
	mov	stFile.lpstrFilter,offset szFilter
	mov	stFile.lpstrFile,offset szProfileName	;文件的全路径放在这里喽
	mov	stFile.nMaxFile,MAX_PATH
	mov	stFile.Flags,OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST
	invoke	GetOpenFileName,addr stFile
	.if	eax != 0
		mov	lpInfo,offset	FindInpoint
		invoke	GetPass
	.endif
	popad
	ret

GetFileName endp

DlgMain	proc	hWnd,wMsg,wParam,lParam

	local	@szBuffer[256]:byte
	
	pushad
	mov	eax,wMsg
	
	.if	eax ==	WM_CLOSE
		invoke	EndDialog,hWnd,NULL
		
	.elseif	eax ==	WM_INITDIALOG
			push	hWnd
			pop	hWinMain
			invoke	LoadIcon,hInstance,ICO_MAIN
			invoke	SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
			xor ecx,ecx
			mov	icheck,ecx		;set the icheck to 0 and check two path have the ini.
			inc	ecx
			mov	lpInfo,offset	FindInOwn
			invoke	StratGet
			mov	icheck,ecx
	.elseif	eax ==	WM_COMMAND
		mov	eax,wParam
		.if	ax ==	IDOK
			invoke	GetInput
		.elseif ax == IDC_copyright
			invoke	MessageBox,hWnd,addr szCopyRight,addr szCRCaption,MB_OK or MB_ICONINFORMATION
		.elseif	ax == IDC_help
			invoke	ShellExecute,0,0,addr szHelpName,0,0,SW_SHOW
			.if	eax < 31
				invoke	MessageBox,hWnd,addr szHelp,NULL,MB_OK or MB_ICONWARNING
			.endif
		.elseif	ax == IDC_OPEN
			invoke	GetFileName
		.elseif	ax == IDC_EXIT
			invoke	EndDialog,hWnd,NULL
		.endif
	.else
		mov	eax,FALSE
		ret
	.endif
	
	mov	eax,TRUE
	popad
	ret
DlgMain	endp


start:
		invoke	GetModuleHandle,NULL
		mov	hInstance,eax
		invoke	DialogBoxParam,eax,DLG_MAIN,NULL,offset DlgMain,NULL
		invoke	ExitProcess,NULL

		end	start


out22.rc
#include  "D:/masm32/include/resource.h"

#define	ICO_MAIN	1000
#define	DLG_MAIN	1000

#define	IDM_MAIN	4210

#define	IDC_INF		1001
#define	IDC_Load	1002
#define	IDC_Pass	1003
#define	IDC_Password	1004
#define IDC_OPEN	1005
#define IDC_copyright	1006
#define IDC_help 	1007
#define	IDC_EXIT	1100


ICO_MAIN	ICON		"cm02_triones.ico"

DLG_MAIN DIALOG 240,200,200,100
MENU	IDM_MAIN
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | DS_3DLOOK
CAPTION "OUT3.3 (Win32ASM ver 0.2)"
FONT 9, "宋体"
{
 CONTROL "", -1, "Static", SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE,0,0,200,1
 GROUPBOX "神州数码解密程序32位汇编版",-1,2,5,196,92
 
 EDITTEXT IDC_Password,28,63,70,11,ES_READONLY
 
 EDITTEXT IDC_INF,4,15,192,12, ES_AUTOHSCROLL | ES_READONLY
 RTEXT "路径:",-1,4,36,25,10
 EDITTEXT IDC_Load,28,34,168,11, ES_AUTOHSCROLL | ES_READONLY
 RTEXT "密文:", -1,4,51,25,10
 EDITTEXT IDC_Pass, 28,49, 140, 11
 RTEXT "密码:", -1,4,64, 25, 10

 PUSHBUTTON	"解密(&J)",IDOK,144,63,50,14
 PUSHBUTTON	"打开文件(&O)",IDC_OPEN,5,80,50,14
 PUSHBUTTON	"关于(&A)",IDC_copyright,60,80,50,14
 PUSHBUTTON	"关闭(&X)",IDC_EXIT,144,80,50,14
 
}

IDM_MAIN	MENU	discardable
{
 popup	"操作(&F)"
	{
	 menuitem	"打开(&O).../tAlt+O",IDC_OPEN
	 menuitem	"解密(&J)/tAlt+J",IDOK
	 menuitem	separator
	 menuitem	"退出(&X)",IDC_EXIT
	}
 popup	"帮助(&H)"
	{
	 menuitem	"帮助(&H)",IDC_help
	 menuitem	separator
	 menuitem	"关于(&A)",IDC_copyright
	}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

山寨版神州数码Zdclient_0.13最新win32版本

山寨版神州数码Zdclient_0.13最新win32版本 山寨版的神州数码802.1x认证supplicant,基于pcap库的C语言的跨平台的原生客户端。 原项目地址:https://code.g...

教程:神州数码交换机通用菜单命令2009版.

交换机支持的命令: 交换机基本状态: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2...
  • MoeDisk
  • MoeDisk
  • 2016年10月07日 12:04
  • 89

山寨版神州数码认证客户端

  • 2012年10月14日 17:10
  • 66KB
  • 下载

OPENWRT交叉编译之神州数码校园客户端实践

OPENWRT交叉编译之神州数码校园客户端实践 以华为HD255G为例 此教程仅供个人使用,不得用作商业用途,本文作者保留最终解释权。 转载请说明出处 浙理工 咸咖啡 附言 ...

神州数码客户端,校园破解版

  • 2012年12月25日 09:09
  • 2.96MB
  • 下载

谈谈工作 - 神州数码篇

本文是之前的文章『谈谈大学』的姊妹篇。也是拖了很久,才下定决心,写上一写。 我的工作历程不算太长,但也不短,11年工龄,30岁出头,要写这么篇文章,其实很尴尬。刨去创业两年时光,我也就是9年在企...
  • superct
  • superct
  • 2014年07月31日 17:00
  • 7812

神州数码在武汉建第二总部

8月10日下午,神州数码第二总部暨神州数码武汉科技园奠基仪式在武汉举行,深圳数码主席郭为表示,武汉不仅开创了“中国光谷”这一国际领先的光电子产业基地,还在2010年率先提出建设智慧武汉,这是选择武汉作...
  • xqdd
  • xqdd
  • 2011年08月12日 00:44
  • 4127

神州数码:输入一个字符串: (1)输出出现次数最少的字符 (2)删除出现次数最少的字符并输出字符串

//神州数码:输入一个字符串: //(1)输出出现次数最少的字符 //(2)删除出现次数最少的字符并输出字符串 import java.util.Collection; import java.uti...

校园网(锐捷/神州数码)共享上网的解决方案

鉴于目前工作和学习的需要,校园网等用锐捷/神州数码拨号上网的用户,共享网络来构建无线局域网成了倍加关注的问题。为了解决这个问题,本人参考网络上的各种资料,结合自己的经历,现将自己构建无线局域网的一点小...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:神州数码解密程序32位汇编版
举报原因:
原因补充:

(最多只允许输入30个字)