动态链接库

动态链接库
动态链接库

1、动态链接库概述

动态链接库一直就是Windows操作系统的基础。动态链接库通常都不能直接运行,也不能接收消息。它们是一些独立的文件,其中包含能被可执行程序或其他DLL调用来完成某项工作的函数。只有在其他模块调用动态链接库中的函数时,它才发挥作用。在实际编程时,我们可以把完成某种功能的函数放在一个动态链接库中,然后供给其他程序调用Windows API中的所有函数都包含在DLL中,其中有3个最重要的DLL

Kernel32.dll:包含那些用于管理内存、进程和线程的函数

User32.dll:包含那些用于执行用户界面任务的函数

GDI32.dll:包含那些用于画图和显示文本的函数

1.1、静态库与动态库

静态库:函数和数据被编译进一个二进制文件(扩展名.lib)。在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其他模块组合起来创建最终的可执行文件(.exe文件)。当发布产品时,只需要发布这个可执行文件,并不需要发布使用的静态库

动态库:在使用动态库时,往往提供两个文件:一个引入库(.lib)文件和一个DLL(.dll)文件。虽然引入库文件的后缀名也是“lib”,但是,动态链接库的引入库文件和静态库文件有着本质的区别,对一个DLL来说,其引入库文件(.lib)包含该DLL导出的函数和变量的符号名,而.dll文件包含该DLL实际的函数和数据。在使用动态库的情况下,在编译链接可执行文件时,只需要链接该DLL的引入库文件,该DLL中的函数代码和数据并不复制到可执行文件中,直到可执行程序运行时,才去加载所需的DLL,将该DLL映射到进程的地址空间中,然后访问DLL中导出的函数。这时,在发布产品时,除了发布可执行文件意外,同时还要发布该程序将要调用的动态链接库

1.2、使用动态链接库的好处

1、可以采用多种语言来编写

2、增强产品的功能

3、提供二次开发的平台

4、简化项目管理

5、可以节省磁盘空间和内存

当进程被加载时,系统为它分配一个4GB的地址空间,接着分析该可执行模块,找到该程序要调用哪些DLL,然后系统搜索这些DLL,找到后就加载它们,并为它们分配虚拟的内存空间,然后将DLL的页面映射到调用进程的地址空间。在内存中,只需要存在一份DLL 的代码和数据。多个进程可以共享DLL的同一份代码,这样就可以节省内存空间

6、有助于资源的共享

7、有助于实现应用程序的本地化

1.3、动态链接库的加载

在程序中,有以下两种加载动态链接库的方式:

隐式加载

显式加载

2、Win32DLL的创建和使用

工程:Win32Dynamic-Link Library

2.1、Dumpbin命令

应用程序如果要访问某个DLL中的函数,那么该函数必须是已经导出的函数。为了查看一个DLL中有哪些导出函数,可以利用Visual Stidio提供的命令行工具:Dumpbin命令来实现

如果想要查看一个DLL提供的导出函数,可以使用/EXPORTS选项来运行Dumpbin命令。

2.2、从DLL中导出函数

为了让DLL导出一些函数,需要在每一个将要被导出的函数前面添加标识符:_declspec(dllexport)

Dumpbin命令的输出信息:

oradinal:导出函数的序号

hint:提示码

RVA:导出函数在DLL模块中的位置,通过该地址值,可以在DLL中找到它们

name:导出函数的名称

C++支持函数重载,对于重载的多个函数来说,其函数名都是一样的,为了加以区分,在编译链接时,C++会按照自己的规则纂改函数的名称,这一过程称为“名字改编”。不同的编译器会采用不同的规则进行名字改编,这样的话,利用不同C++编译器生成的程序在调用对方提供的函数时,可能会出现问题

3、隐式链接方式加载DLL

3.1、利用extern声明外部函数

在调用DLL中的函数之前,为了让编译器知道这两个函数,需要对这两个函数作一个声明,前面加上extern关键字表明函数是在外部定义的

为了让链接器找到定义在DLL中的函数是在哪个地方实现的,需要利用动态链接库的引入库文件。把.lib文件复制到工程所在目录下,该目录包含了.dll中导出函数的符号名。然后在工程中,选择Project\Setting菜单命令,打开工程设置对话框,选择link选项卡,在“Object/library modules”选项编辑框中输入.lib文件的文件名

当应用程序需要调用某个动态链接库提供的函数时,在程序链接时只需要包含该动态链接库提供的输入库文件就可以了。在引入库文件中并没有包含实际的代码,它只是用来为链接程序提供必要的信息,以便在可执行文件中建立动态链接时需要用到的重定位表。

我们也可以查看可执行程序的输入信息,以及其加载的DLL信息,这同样要利用dumpbin 命令的imports选项来实现。

动态链接库的搜索顺序:

程序的执行目录

当前目录

系统目录

path环境变量所列出的目录

为了让可执行文件能够正常执行,就必须让加载模块能够找到该应用程序所需的所有动态链接库,如果加载模块未能找到其中的一个动态链接库,可执行程序将中止运行

3.2、使用_declspec(dllimport)声明外部函数

除了使用extern关键字表明函数是外部定义的之外,还可以使用标识符:_declspec(dllimport)来表明函数是从动态链接库引入的

4、完善Win32DLL

一个DLL实现之后,通常都会交给客户程序,以便后者能访问该DLL。通常在编写动态链接库时,都会提供一个头文件,在此文件中提供DLL导出函数的声明,以及函数有关注释文档

5、从DLL中导出C++类

在一个动态链接库中可以导出C++类。为了从动态链接库中导出一个类,需要在class关键字和类名之间加入导出标识符,这样就可以导出整个类了。在访问该类的函数时,仍受限于函数自身的访问权限

在实现动态链接库时,可以不导出整个类,而只导出该类中的某些函数。这时,要把导出标识符放在要导出的成员函数的声明处。

动态链接库导出整个类和仅导出该类的某些成员函数在实现方式上的区别:如果在声明类时,指定了导出标志,那么该类中的所有函数都将被导出,否则,只有那些声明时指定了导出标志的类成员函数才被导出。但对这两种情况生成的DLL,客户端程序在访问上是没有区别的,都是先构造该类的一个对象,然后利用该对象访问该类的成员函数。

6、解决名字改编问题

C++编译器在生成DLL时,会对导出的函数进行名字改编,并且不同的编译器使用的改编规则不一样。这样,如果利用不同的编译器分别生成DLL和访问该DLL的客户端程序的话,后者在访问该DLL的导出函数时就会出现问题

为了实现动态链接库文件在编译时,导出函数的名称不发生改变,在定义导出函数时,需要加上限定符:extern“C”

利用限定符extern“C”可以解决C++和C语言之间相互调用时函数命名的问题。但是这种方法有一个缺陷,就是不能用于导出一个类的成员函数,只能用于导出全局函数这种情况

另外,如果导出函数的调用约定发生了改变,那么即使使用了限定符extern“C”,该函数的名字仍会发生改编

调用约定:_stdcall标准调用约定,C调用约定

可以通过模块定义文件(DEF)的方式来解决名字改编问题:

为工程添加模块定义文件,其后缀名为:def。添加方法有多种:

创建一个空的文本文件,并将文件命名为:DLL工程名.def。然后回到VC开发界面,将该文件添加到DLL工程中,添加方法是:选择project/add to project/files菜单项,把模块定义文件添加到工程中

模块定义文件的内容:

LIBRARY DLL2

EXPORTS

add

其中LIBRARY语句用来指定动态链接库的内部名称,该名称与生成的动态链接库的工程名一致,这句代码不是必须的。EXPORTS语句的作用是表明将要导出的函数,以及为这些导出函数指定的符号名。当链接器在链接时,会分析这个DEF文件,当发现在EXPORTS语句下面有add这个符号名,并且与源文件中定义的函数的名字是一样的时候,它就会以add 这个符号名导出相应的函数。如果将要导出的符号名和源文件中定义的符号名不一样,则采用下述语法指定导出函数

entryname=internalname

其中entername项是导出的符号名,internalname项是DLL中将要导出的函数的名字

7、显式加载方式加载DLL

7.1、LoadLibrary

使用动态方式加载动态链接库时,需要用到LoadLibrary函数。该函数的作用是将指定的可执行模块映射到调用进程的地址空间。LoadLibrary函数的原型声明如下:

HMODUAL LoadLibrary(LPCTSTR lpFileName)

LoadLibrary函数不仅能够加载DLL(.dll)还可以加载可执行模块(.exe)

LoadLibrary函数有一个字符串类型的参数,该参数指定了可执行模块的名称,既可以是一个.dll文件,也可以是一个.exe文件。如果调用成功,LoadLibrary函数将返回所加载的那个模块的句柄

当获取到动态链接库模块的句柄后,接下来就该获取动态链接库中导出函数的地址,这可以通过GetProcAddress函数来实现。该函数用来获取DLL导出函数的地址,其原型声明如下:FARPROC GetProcAddress(HMODULE hModule,LPCSTR lpProcName)

hModule:指定动态链接库模块的句柄

lpProcName:指定DLL导出函数的名字或函数的序号

如果调用成功,GetProcAddress函数返回指定导出函数的地址,否则返回NULL

函数调用完毕后,使用FreeLibrary()卸载DLL文件。

FreeLibrary(hDll);

动态加载DLL时,客户端程序不再需要包含导出函数声明的头文件和引入库文件,只需要.dll文件既可

动态加载和隐式链接这两种加载DLL的方式各有优点:如果采用动态加载方式,那么可以在需要时才加载DLL,而隐式链接方式实现起来比较简单,在编写客户端代码时就可以把链接工作做好,在程序中可以随时调用DLL导出的函数。但是如果程序需要访问很多个DLL,如果都采用隐式链接方式加载的话,那么在该程序启动时,这些DLL都需要被加载到内存中,并映射到调用进程的地址空间,这样将加大程序的启动时间。而且,一般来说,在程序运行过程中只是在某些条件满足时才需要访问某个DLL中的函数,资源浪费情况比较严重。在这种情况下,就可以采用动态加载的方式访问DLL,在需要时才加载所需的DLL。实际上,采用隐式链接方式访问DLL时,在程序启动时也是通过调用LoadLibrary函数加载该进程需要的动态链接库的

另外,当采用动态方式加载DLL时,在客户端程序中将不能看到调用该DLL的输入信息了7.2、调用约定

当DLL中导出函数采用的是标准调用约定时,访问该DLL的客户端程序也应该采用该约定类型来访问相应的导出函数

8、DllMain函数

对可执行模块来说,其入口函数是WinMain,而对DLL来说,其入口函数是DllMain,但该函数是可选的。如果提供了DllMain函数,那么当系统加载该DLL时,就会调用该函数9、DLL的分类

VC++支持三种DLL,它们分别是Non-MFC Dll、Regular Dll、Extension Dll

Non-MFC Dll(非MFC动态库):这种动态链接库没有采用MFC的类结构,而是直接用C++语言编写的DLL。它的导出函数是标准的C接口,能被MFC和非MFC编写的应用程序调用。相比MFC类库编写的DLL,它占用很少的磁盘和内存空间

Regular DLL(常规DLL):用MFC类库编写的,它的一个明显的特征是,在源文件里有一个继承自CWinApp的类,导出的对象可以是C函数、C++类或者C++成员函数。只要应用程序可以调用C函数,它就可以调用常规DLL。

常规DLL可分为两种:静态链接到MFC的常规DLL和动态链接到MFC的常规DLL。二者的区别是:前者使用的是MFC的静态链接库,生成的DLL文件长度大;后者采用MFC的动态链接库,生成的DLL文件长度小

Extension DLL(扩展DLL):由MFC的动态链接库版本创建,且只能被使用MFC类库编写

的应用程序调用。它没有一个从WinApp继承而来的类的对象。开发人员必须在DLL中的DllMain函数添加初始化代码和结束代码

实验一数据库及基本表的建立

实验一数据库及基本表的建立 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2005; 四、实验方法、步骤及结果测试 题目1、创建数据库“学生情况”: 实现代码及截图: SQL语句 Create database 学生情况 查询分析器执行情况 :SQL语句及执行结果截图显示 找到主数据文件和日志文件,观察大小,并给出截图。

题目2、将数据库“学生情况”改名为“student” SQL语句 EXEC sp_renamedb学生情况, student 查询分析器执行情况: SQL语句及执行结果截图显示 题目3、创建基本表 S表 含义字段名字段类型字段 宽度 说明学号Sno Char10主键,不允许为空姓名Sname char10不允许为空 性别Ssex char2取值为男或女

C表 Sc表: 创建各表的实现代码及截图:

查询分析器执行情况: SQL语句及执行结果截图显示

题目4*、用sql语句将C表中的ccredit改为整型,同样约束为0-20之间 题目5、用sql语句在S表中添加一格“备注”字段remark,变长字符型,长度30,并保存结果

实验一 创建数据库和表1

实验一创建数据库和表 一、目的和要求 (1)熟练掌握创建、打开和关闭数据库的方法 (2)熟练掌握表结构的设计和修改方法 (3)掌握为字段设置字段属性的方法 (4)熟练掌握为表定义主键的方法 (5)熟练掌握建立表间关系 二、内容和主要步骤 1.创建空数据库 建立“选课系统.accdb”数据库,并将建好的数据库文件保存在“D:\实验一”文件夹中。操作步骤: 图1-1创建教学管理数据库 (1)在Access 2010启动窗口中,在中间窗格的上方,单击“空数据库”,在右侧窗格的文件名文本框中,给出一个默认的文件名“Database1.accdb”。把它修改为“选课系统”如图1-1所示。 (2)单击按钮,在打开的“新建数据库”对话框中,选择数据库的保存位置,在“D\实验一”文件夹中,单击“确定”按钮,如图1-2所示。 (3)这时返回到access启动界面,显示将要创建的数据库的名称和保存位置,如果用户未提供文件扩展名,access将自动添加上。 (4)在右侧窗格下面,单击“创建”命令按钮,如图1-1所示。 (5)这时开始创建空白数据库,自动创建了一个名称为表1的数据表,并以数据表视图方式打开这个表1,如图1-3所示。

图1-2“文件新建数据库”对话框 (6)这时光标将位于“添加新字段”列中的第一个空单元格中,现在就可以输入添加数据,或者从另一数据源粘贴数据。 图1-3 表1的数据表视图 2.数据库的打开 以独占方式打开“选课系统.accdb”数据库。操作步骤: (1)选择“文件”→“打开”,弹出“打开”对话框。 (2)在“打开”对话框的“查找范围”中选择“D:\实验一”文件夹,在文件列表中选“选课系统.accdb”,然后单击“打开”按钮右边的箭头,选择“以独占方式打开”。如图1-4所示。

反编译详细教程

.去震动教程.时间居中教程,时间显示到秒且居中 在通知栏增加模拟时钟透明状态栏代码修改 字体颜色修改关于运营商图标修改 可以ctrl+F,按需搜索 一:去震动教程: 一、首先是配置编译和反编译环境,具体方法如下: 1、在电脑上下载安装JRE(https://www.360docs.net/doc/d410204646.html,/file/clif5w53)。其次下载好apk反编译工具 (apk反编译软件.rar(2.43 MB, 下载次数: 5756) ) 2、在系统环境变量Path里加入java.exe所在路径。 右键我的电脑--属性--高级系统--设置--环境变量--系统环境变量,里面的path变量项,值里面添加java的所在路径(例如“;C:\Program Files\Java\jre6\bin”) 3、将反编译软件解压出来,为了便于使用,最好放在C:\Windows目录下。 二、提取并反编译framework-res.apk文件 1、手机必须root,先用RE管理器将/system/framework文件夹下的文件framework-res.apk复制到/sdcard,然后复制到电脑(为了方便后面的操作,建议将文件放到电脑某个盘符的根目录下。例如:e:\framework-res.apk)

2、反编译framework-res.apk文件。具体方法运行cmd.exe(如图) 然后在出来的命令提示行中输入以下命令:apktool+空格d+空格+framework-res.apk路径+空格+反编译后文件存放路径,比如文件放入d盘根目录则命令为:apktool d d:\framework-res.apk d:\framework-res(如图)(此时反编译出来的文件放在d盘framework-res文件夹下) 三、修改去震动相关的xml文件 一般framework-res\res\values\arrays.xml就是我们要修改的对象。用xml编辑器(xml 编辑器.rar(345.03 KB, 下载次数: 3223) )打开这个文件。修改如图:

实验一创建数据库及表的创建与管理

实验1创建数据库及表的创建与管理 一、实验目的与要求 1、掌握使用T-SQL语句创建数据库、数据表和`数据表完整性约束的定义。 2、熟悉表的结构和列所使用的数据类型。 3、理解数据表完整性含义及其定义的方法。 二、实验平台 1、操作系统:Windows XP或Windows 2003 2、数据库管理系统:SQL Server 2005 三、实验内容 (一)数据库创建与管理 创建一个“教务管理系统”数据库,并将下列表创建在该数据库中(二)在“教务管理系统”数据库钟实现表的创建与完整性定义StudentInfo(学生信息表) TeacherInfo(教师信息表)

CourseInfo(课程信息表) StudentCourse(学生选课表)

Teaching(教学表) RankPayment(职称课酬表) 1、使用T-SQL语句创建以上数据表。同时定义主键约束:StudentInfo表主键Sno;TeacherInfo表主键Tno;CourseInfo表主键Cno;RankPayment表主键Trank。 2、使用T-SQL语句定义以上数据表的其他约束 ①对StudentInfo表的Sname进行唯一性约束(unique约束),约束名称为S1。 ②对CourseInfo表的Cname进行唯一性约束(unique约束)。 ③对StudentCourse表定义外键约束:Sno引用StudentInfo表中的Sno,Cno 引用CourseInfo表中的Cno。 ④对TeacherInfo表定义外键约束:Trank引用RankPayment表中的Trank。 ⑤对Teaching表定义外键约束:Tno引用TeacherInfo表中的Tno,Cno引用CourseInfo表中的Cno。 ⑥对StudentCourse表的Score进行CHECK约束:Score必须在0至100之间。

反编译FLASH利器SWF DECOMPILER使用教程

反编译Flash利器SWF Decompiler使用教程 1、软件功能介绍 SWF Decompiler 是一款用于浏览和解析Flash动画(.swf文件和.exe文件)的工具。它能够将flash动画中的图片、矢量图、字体、文字、按钮、影片片段、帧等基本元素完全分解,还可以对flash 影片动作(Action)进行解析,清楚的显示其动作的代码,让您对Flash 动画的构造一目了然。你可以将分解出来的图片、矢量图、声音灵活应用于FLASH MX 2004 中,让你也可以做出大师级的作品! 2、认识SWF Decompiler 的界面 SWF Decompiler 的界面如(图1)所示:

图1 SWF Decompiler 的界面比较简单,除了上面的菜单栏和工具栏外,左边是文件查看窗口,中间是影片预览窗口和信息窗口,右边是资源窗口,下面简单介绍一下工具栏。 由于菜单命令与工具栏的功能一样,这里只介绍工具栏的作用。工具栏包括共有9个工具(参看图1 从左至右): ①快速打开:不用解释吧^o^; ②导出fla:导出反编译后的 .fla格式源文件; ③导出资源:导出反编译后的Flash中的资源,如图片、音频、Flash片段等; ④文件浏览:显示或隐藏文件浏览窗口; ⑤信息窗口:显示或隐藏信息窗口; ⑥资源窗口:显示或隐藏资源窗口; ⑦影片信息:显示当前的Flash影片信息; ⑧背景颜色:设置Flash及资源预览窗口的背景颜色; ⑨动作脚本查看方式:共有3个查看方式选择,源码、伪码、原始数据; 3、SWF Decompiler 的操作方法

①打开Flash影片。打开SWF Decompiler 后在文件夹浏览窗口中找到要处理的Flash所在的文件夹(当然也可用“快速打开”工具)并单击,然后在文件选择窗口中点击要处理的Flash(可以是swf格式或exe格式),此时开始在预览窗口中播放影片。 如果想浏览窗口大一些,可点击[文件浏览]和[信息窗口]工具,隐藏了这两个窗口,浏览窗口便自动扩大。 ②导出SWF源文件(fla格式)。在右侧的资源窗口中点击该文件名前面的“+”号(见图2),软件便开始分析当前的SWF文件,稍等候就完成分析并以树形结构分门别类显示出SWF文件的内部结构来。如图3所示: 图2 图3 然后点击上面的[导出fla]按钮,在“导出fla”选项窗口中,选择好导出路径和其他选项,如果选择“自动用FLASH打开”,则会直接启动FLASH MX 2004,就可以对导出的fla文件进行编辑操作。

实验一 创建数据库和表

实验一创建数据库和表 1、目的和要求 (1)了解SQL Server数据库的逻辑结构和物理结构。 (2)了解表的结构特点 (3)了解SQL Server的基本数据类型。 2、实验内容 (1)实验题目 ①创建一个新的数据库。创建用于企业管理的员工数据库,数据库名称为YGGL。 ②在创建好的数据库YGGL中创建数据表。考虑到数据库YGGL中包含员工的信息、部分信息以及员工的薪水信息,所以数据库YGGL应该包含三个表:Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。 3、实验步骤 (1)在对象资源管理器中创建数据库YGGL。 (2)删除数据库YGGL。 ①界面操作删除数据库 删除数据库YGGL时,右键单击数据库,弹出菜单点击“删除”,弹出“删除对象”窗口,确认删除。

②T-SQL语句删除数据库 在代码空白处右击鼠标,弹出菜单选择“执行(X)”或者键盘“F5”运行代码,在下方会显示运行成功。 此时在左侧“对象资管理器”中右键点击“数据库”选择刷新数据库,会发现数据库“PX”已经删除。 注意:当执行过一遍代码时,也就是执行了T-SQL语句删除数据库后再次执行代码会出现这样的警告。原因是由于执行过一遍T-SQL语句,进行操作的数据库已经被删除,不存在。 (3)使用T-SQL语句创建数据库YGGL。 新建查询后,在窗口中输入上面代码,右键代码空白处执行。然后在“对象资源管理器”中查看。如果“数据库”列表中并未列出YGGL数据库,则单击右键“数据库”,选择“刷

新”选项,“数据库”列表中就会出现创建的YGGL数据库。 (4)在对象资源管理器中创建表。 ①创建表。Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。 在对象资源管理器中选择创建的数据库“YGGL”,展开数据库YGGL,选择“表”,右键单击“表”在弹出的菜单中选择“新建表”。将表保存并命名为“Employees”。下面是相同方法创建的Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。 Employees(员工自然信息)表 Departments(部门信息)表 Salary(员工薪水情况)表

图文并茂:反编译E书软件使用教程

图文并茂:反编译E书软件使用教程 ----------霏凡论坛sss888制作 本篇教程主要介绍E书反编译软件的使用方法,让大家从不能保存的E书中获得所需要的文章和图片。 首先感谢制作反汇编电子书工具软件的作者,是他为我们制作了这么好的软件。 下面我们开始介绍软件的用法。 第一:miniKillEBook使用方法 首先是miniKillEBook介绍 MiniKillEBook可以反编译EXE,CHM格式的电子书,但对翻页EXE格式电子书和小说网的EXE格式的电子书无效。 双击图标打开miniKillEBook软件 打开miniKillEBook后,界面如下。 然后找到你要反编译的E书。 我们以红楼望月:《从秦可卿解读<红楼梦>》为例子来反编译。

点击图标打开E书,打开后的界面如下。 用鼠标左键按住不放,拖动光标到E书的界面中, 如果界面没选对会提示下面的对话框。 你需要重新选择E书的界面。选择成功后会变成下面的样子。

然后选择反编译后文件的保存的地方,如下图: 点击按钮,开始反编译E书。成功后的提示如下。

由于前面选择了,现在你就得到了纯文本格式的文件。 如果这个选项不打钩,将得到网页文件

反编译CHM格式电子书的方法 点击图标打开E书,打开后的界面如下。 用鼠标左键按住不放,拖动光标到E书的界面中,如下图:

点击按钮,开始反编译E书。后面的方法同上面,就不做详细介绍了。 好了miniKillEBook用法就介绍到此,下面介绍CtrlN的用法。 第二:CtrlN的用法 由于上面的miniKillEBook软件作者做了限制,只能反编译得到网页文件,还有些E书被屏蔽了鼠标右键,不能获得网页的文本和图片,我们现在讲E书文件中的图片获得的方法。 双击打开CtrlN软件,打开miniKillEBook后,界面如下。 首先设置好CtrlN软件,点击图标,出现下面的配置界面。

创建数据库实验报告

数据库技术与应用 实验报告一 班级;机械因材` 学号:1200409025 姓名:高永吉 一:实验名称:创建数据库 二:实验目的: ⑴熟悉SQL的组成及运行环境; ⑵掌握数据库的创建方法; ⑶熟悉数据库的基本管理。 三.实验内容、过程和结果: 创建数据库 1.使用图形化界面 在自带U盘根目录下创建文件夹sql。 使用图形化界面创建数据库,名称自定,包括一个主数据文件、一个事务日志文件。 指定student的主数据文件为student.mdf,事务日志文件名为student.ldf,并存放在自带盘sql文件夹中。 数据库其它属性设置取默认值。 修改以上数据库的空间大小,名称;查看数据库信息。 2.使用T-SQl命令 (1)在自带盘student文件夹下创建一个customer数据库,包含1个数据文件和1个事务日志文件。主数据文件的逻辑文件名为customer,实际文件名为customer.mdf,初始容量为10MB,最大容

量为50MB,自动增长时的递增量为2MB。事务日志文件的逻辑文件名为customer_log,实际文件名为customer_log.1df,初始容量为5MB,最大容量为30MB,自动增长时的递增量为1MB。 (2)修改customer数据库的名称。 (3)查看数据库属性信息。 图一图形化建立数据库并查看信息

图2T-SQl命令建立数据库

图三查询 图四,更改文件名

四.心得体会 1.第一次接触数据库,给我的感觉是很有意思,第一次编得数据库很容易理解. 2不足之处是记不住语句中单词的拼写。 3开始不知道怎样打开自己编的数据库。通过请教老师学会了如何打开 4课后应该大家练习,熟练掌握方法.

电脑端反编译pyc完全教程(两种方法)

本文由panhaiqing1990贡献 doc1。 完全教程(两种方法 两种方法) 电脑端反编译 pyc 完全教程 两种方法 QUOTE: 写在前面:虽然手机上可以使用许多反编译的软件, 但是受限于手机的运存,稍微大一点的 pyc 代码就不 能反编译成功,或者要等很久,因此笔者特研究出怎 样在电脑端用 python 反编译。 ********************************************** ************ QUOTE: 感谢 真.天舞 大哥提供的另外一种方法,就是使用电脑端的 decompile 代码, 也可以实现反编译哈,感觉比较简单,大家选择一种使用吧。 先安装 PY 平台 这里下载 2.2.3 的平台 2.5 的不行,用不了 安装完成再把反编译脚本复制到安装盘 Lib 文件夹里面 再打开“开始”,“程序”,“Python 2.2”,“IDLE (Python GUI)” 把下面编码复制到编辑器里面 >>> from decompile import main(这里按回车键跳下到下一行) >>> main('','.',['c:\\ped.pyc']) 注:c:\\ped.pyc 是要编译的文件路径,实际操作的时候要把路径改为你要编译的脚本路径 然后 Enter 键(回车键) 少等片刻…… 到 C 盘看一看,ped.pyc_dis 就是反编译出来的脚本了 把后缀改为 ped.py 就可以了 QUOTE: 最新发现,原来两种方法本质上是一样的,都是调用 decompile 文件夹里面的相应模块和函数,实现反编 译。 我写的那种方法其实就是 真.天舞 大哥说的那种 方法的翻版。我写的那种方法是先将 py_decompile 模块放在根目录下面,其实它的代码就三句: [Copy to clipboard] [ - ] CODE: from decompile import main def decompile(path): main('','.',[path],none,0,0,0) 之后再调用里面的 decompile 函数,也就是换汤不换 药。一样哈。 QUOTE: 电脑端反编译 pyc 教程 在网上曾多次见到有人说电脑端用 decompile 模块可 以反编译 pyc 文件, 但是所说的那种方法根本就不行, 因为一来是那个模块不好找,二来是那是反编译的语 句根本就是错误的,根本没法用,或者说作者没有写 清楚到底该以什么样的步骤来反编译导致我弄不来。 经过我仔细加长时间的实验终于有了一点收获,下面 把图文教程弄给大家, 以便为有需要的朋友提供便利: 1.需要的软件和文件 首先,是 python2.2.3 for windows,我试过了,用 更加高级的版本不能反编译成功。安装它。 然后是我从炫飘零的“编译反编译工具”解包得 来的反编译所需要的模块。解压缩后全部放在电脑端 python 的“安装盘:\python22 \lib”下面。 2.按下图所示,在开始菜单处选择 接下来,看到这个画面,有点像 cmd 的界面: 3.在里面输入:import py_decompile 回车 py_decompile.decompile(“需要反编译的文件完整路 径”) 回车 如图 之后等一下,成功的话会看见这样的提示: 反编译后的文件和原文件在一个目录下面: 然后把它的文件后缀改成 py 就可以变成一个 py 脚本 了。 但是反编译之后的 py 脚本里面的许多提示性的文字 全是一些符号加字母和数字组成,怎么还原成中文或 者说是原文呢,这里推荐使用我提供的从网上搜来的 源码还原,因为种种原因,这个没能整到电脑上面来 使用,只能在手机上面使用。它可以批量还原,相当 安逸。当你把需要反编译的文件反编译好后,就可以 传到手机上面一个单独的目录。然后运行软件选择相 应的目录,之后就等吧,不久就成功了。 附图: 在看下还原后的效果: 再给大家看张我用模拟器在电脑端运行我修改后的 py 代码的情况。 [ 本帖最后由 perfectswpuboy1 于 2009-8-28 19:19 编辑 ]

实验1 建立数据库和数据表

实验1 创建数据库与数据表 班级:学号:姓名: 实验目的: 1.熟悉SQL SERVER环境; 2.掌握数据库和数据表的创建和删除,实践SQL的CREATE、ALTER和DROP命令; 3.掌握数据表的创建和数据记录的插入方法。 实验内容: 1. 创建教学管理“JXGL”数据库,并建立学生STUDENT、课程COURSE和选修SC三个数据表,各表中的数据如下所示: 2.创建供应系统“GYXT”数据库,其中包括供应商表S、零件表P、工程项目表J和供应情况表SPJ四个数据表,各表中数据如下所示。

实验步骤: 1.创建教学管理“JXGL”数据库。 (1) 创建教学管理“JXGL”数据库。 在命令窗格中输入如下命令,然后单击“运行”钮执行该命令。CREATE DATABASE JXGL; (2) 清空命令窗格后,在JXGL数据库中建立STUDENT表,并插入记录,然后执行。INSERT INTO STUDENT VALUES(…95002?,?刘晨?,?F?,19,?IS?); INSERT INTO STUDENT VALUES(…95003?,?王敏?,?F?,18,?MA?); INSERT INTO STUDENT VALUES(…95004?,?张立?,?M?,18,?IS?); (3) 清空查询窗格后,JXGL数据库中建立COURSE表,并插入记录,然后执行。INSERT INTO COURSE VALUES(…2?,?数学?,? ?,2); INSERT INTO COURSE VALUES(…3?,?信息系统?,?1?,4); INSERT INTO COURSE VALUES(…4?,?操作系统?,?6?,3); INSERT INTO COURSE VALUES(…5?,?数据结构?,?7?,4); INSERT INTO COURSE VALUES(…6?,?数据处理?,? ?,2); INSERT INTO COURSE VALUES(…7?,?C语言?,?6?,4);

apk反编译步骤

apk反编译步骤 2011-02-24 21:17:25 标签:apk反编译休闲Android职场 原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。否则将追究法律责任。 https://www.360docs.net/doc/d410204646.html,/2400264/499893 对于软件开发人员来说,保护代码安全也是比较重要的因素之一,不过目前来说Google Android平台选择了Java Dalvik VM的方式使其程序很容易破解和被修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式,然后解压缩可以看到内部的文件结构,类似Sun JavaMe的Jar压缩格式一样,不过不同的是Android上的二进制代码被编译成为Dex的字节码,所有的Java文件最终会编译进该文件中去,作为托管代码既然虚拟机可以识别,那么我们就可以很轻松的反编译。所有的类调用、涉及到的方法都在里面体现到,至于逻辑的执行可以通过实时调试的方法来查看,当然这需要借助一些我们自己编写的跟踪程序。Google最然在Android Market上设置了权限保护app-private 文件夹的安全,但是最终我们使用修改定值的系统仍然可以获取到需要的文件。 当然了,我们反编译的目的是为了学习。 1. Apk文件:自己准备apk文件。 2. 将xxx.apk扩展名修改为xxx.rar或者xxx.zip,用WinRar解压缩,你可以看到内部文件的结构,类似下图所示:

3. 直接打开AndroidManifest.xml会发现是乱码,这里面是二进制字符,需要用AXMLPrinter2.jar (https://www.360docs.net/doc/d410204646.html,/p/android4me/downloads/list),下载AXMLPrinter2.jar文件,为了方便,这里我把它放到了Android SDK文件夹下面的tools文件夹中) 4. 逆向xml文件:把相应的AndroidManifest.xml放到AXMLPrinter2.jar同一目录,进入命令行模式,输入以下命令(注意空格):

实验数据库的建立和维护

实验 2 :数据库的建立和维护实验 本实验需要 2 学时。 一、实验目的 要求学生熟练掌握使用SQL 、Transact-SQL 和SQL Server 企业管理器建立数据库、表、修改数据库、表和删除数据库和表的操作。 二、实验内容和步骤 1.创建数据库 1)在企业管理器中创建数据库姓名_数据库名,要求: ●数据库姓名_数据库名初始大小为10MB,最大大小为50MB,数据库自动增长,增长方式是按5%比例增 长; ●日志文件初始大小为2MB,最大可增长到5MB,按1MB增长; ●数据库的逻辑文件名和物理文件名均采用默认值; ●(分别为姓名_数据库名和e:\姓名\data\姓名_数据库名.mdf ●事务日志的逻辑文件名和物理文件名也采用默认值。 ●(分别为姓名_数据库名_LOG和e:\姓名\data\姓名_数据库名_LOG.ldf) 2)②使用T-SQL语句创建数据库姓名_数据库名_2,要求同1; Create database 姓名_数据库名_2 On (name=STUDENT_01_data, filename='e:\姓名\data\姓名_数据库名_2.mdf', size=10, maxsize=unlimited, filegrowth=10%) log on (name=student1_log, filename='e:\姓名\data\姓名_数据库名.mdf', size=2, maxsize=5, filegrowth=1) 2.创建表 以上面创建的数据库为例,创建表。创建表实际上就是创建表结构,再向表中输入数据。既可以使用企业管理器创建表,也可以用Transact-SQL命令创建表。

E语言模块的破解反编译方法-悠悠原创

E语言模块的破解反编译方法-悠悠原创 一定有很多用E语言编写程序的人,对API函数不是很了解。 只能用别人编写的模块 但是呢。。。 别人的模块有要花钱。咱们都是没钱地穷人。 嘿嘿~~ 我个人是支持正版的,但是我更喜欢破解的。 所以今天就在这里教大家怎么去破解E模块!只是方法而已,别去乱用哦``要不偶是不负责地 废话不多说了我们开始(感谢百度提供了我很多资料)就用“xx海”的最新超级模块3.65版来下手吧! 1,先用C32打开易模块。然后在12字节处.把数值改为61 ,60字节处把数值改为EE ,124字节处数值改为1 然后保存!OK了。这样就把模块转变为源码。 2,用易语言把模块打开。然后就有很多子程序了。把开始注册的那个程序集全部删除掉。然后保存。! 3,再用C32把模块打开。然后在12字节处.把数值改为63 ,60字节处把数值改为EC,124字节处数值改为3 同样保存。可以了,这样就完成了破解了。可以无限制的用! 个人感觉C32很不好用,尤其是新人用起来不知道是什么。这里我编写了一个比较简单的程序“E 模块破解转换器-吾爱破解决v1.0版.exe” 作用就是用来把E模块转换为E源码,再把E源码反编译为E模块见下图

下载(15.68 KB) 2010-1-29 21:22 此软件方法很简单:1,点击模块反编译键就可以把模块转为E源码,然后你用E语言打开该模块,删除里面的加了限制的代码,然后保存。 2,再点击模块编译键把保存好的源码反编译为E模块 OK``破解完成了`` 怎么样`很简单吧

下载(221 KB) 2010-1-29 21:27

正版模块信息 下载(30.2 KB) 2010-1-29 21:28 把正版模块转换为E源码

实验一数据库模式设计及建立实验报告

长春大学计算机学院科学与技术专业 数据库原理实验报告 、实验目的: 1.了解SQL SERVER 2005/200系统或KingBase ES 的使用; 2.基本掌握SQL的数据定义。 二、实验内容、要求和环境: 【实验要求】 注:将完成的实验报告重命名为:班级+学号+姓名+ (实验一),(如: 0张三(实验一)),提交到SPO学堂。 1.实验课要携带教材、学习辅导、老师下发的实验报告文档等。 2.课前要对实验内容和步骤部分进行预习。 3.将本次实验所建的数据库做好备份,以备以后实验使用。 【实验环境】 1.SQL SERVER 2005/20085 1.KingBase ES ,人大金仓。 【实验内容和步骤】 1. 熟悉SQL SERVER 2005/2008系统。 (1)启动“ SQLServer ManagemeStudio ”,新建数据库和关系(表)

①鼠标单击“开始/所有程序/Microsoft SQL server 2008/SQL Server ManagemetStudio ” 启动“ SQLServer ManagemetStudio ”,SQL Server Managemet Studio (SSMS是一个集成环境,用于访问、配置、控制、管理和开发SQL Server的所有组件,SSMS#大量图形工具与丰 富的脚本编辑器相结合,使各种技术水平的开发人员和管理员都可以访问 SQL Server; ②在“ SQLServer ManagemetStudio ”中左窗口“对象资源管理器” 中,单击“ SQLEXPRESS勺左侧“ +”,弹出下拉菜单; ③在上一步的下拉菜单中,鼠标右键单击“数据库”,在弹出的菜单中选择“新建数据库”,在弹出的对话框中,输入数据库名,同时可以进行存储位置的设置; ④在数据库文件夹下,出现新建的数据库文件夹; ⑤点击所建数据库文件名左侧的“ +”,弹出下拉菜单; ⑥在上一步弹出的下拉菜单中,鼠标右键单击“表”,弹出下拉菜单,单击“新建表”即可在此数据库文件夹中建立关系(表)了。 (2)在“对象资源管理器”的上方有一个“新建查询”图标,单击 “新建查询”,可使用SQL语言进行对关系的操作 ①单击“新建查询”后,在“对象资源管理器”窗口上部出现一个 工具栏,右侧弹出一个窗口,在此窗口可以输入SQL语句; ②要执行SQL可按工具栏中的“!执行”按钮或选择菜单“查询/ 执行”命令。 2 .用“ SQL Server Managemet Studio ”建立教材p79 图所示的学

反编译教程

Win7 Ultimate x64 Ubuntu 12.04 x86_x64 反编译工具包下载(2012-10-10更新) 一、Apk反编译得到Java源代码 下载上述反编译工具包,打开apk2java目录下的dex2jar-0.0.9.9文件夹,内含apk反编译成java源码工具,以及源码查看工具。 apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件 源码查看工具jdgui,是一个反编译工具,可以直接查看反编译后的jar包源代码 dex2jar 和jdgui 最新版本下载,分别见google code: dex2jar(google code) jdgui(google code),最新版本请见官方 具体步骤: 首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,将classes.dex复制到dex2jar.bat所在目录dex2jar-0.0.9.9文件夹。 在命令行下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex 生成 classes_dex2jar.jar 然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了,如下图:

HelloAndroid源码在反编译前后的对照如下: 二、apk反编译生成程序的源代码和图片、XML配置、语言资源等文件 如果是汉化软件,这将特别有用 首先还是要下载上述反编译工具包,其中最新的apktool,请到google code下载 apktool(google code) 具体步骤: 下载上述反编译工具包,打开apk2java目录下的apktool1.4.1文件夹,内含三个文件:aapt.exe,apktool.bat,apktool.jar 注:里面的apktool_bk.jar是备份的老版本,最好用最新的apktool.jar 在命令行下定位到apktool.bat文件夹,输入以下命令:apktool.bat d -f abc123.apk abc123,如下图:

数据库实验报告_数据库的建立与维护

贵州大学实验报告 学院:计信学院专业:网络工程班级:101 姓名学号实验组实验时间04.03 指导教师罗昊成绩 实验项目名称数据库的建立与维护 实 验目的 要求学生熟练掌握使用SQL语言和SQL Server企业管理器向数据库输入数据、修改数据和删除数据等操作。 实 验要求 本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。开始实验前,先集中由老师进行具体要求和注意事项的讲解,然后各自独立在机器上完成实验。实验过程中出现问题,在实验指导老师帮助下解决。 实验原理 在Microsoft SQL Server 2000的企业管理器中。对表进行数据增、删、改操作非常简便。其操作方法是: 1、选中服务器,展开数据库文件夹,进一步展开指定的数据库。单击表文件夹,找到需要更新数据的基本表。 2、用鼠标右击要更新数据的表,会出现与表相关操作的弹出菜单,在弹出菜单中选择“打开表”,在右侧选择“返回所有行”,就会出现表数据更新对话框,在该对话框中,数据以表格形式组织,每个字段就是表中的一列,每条记录是表中的一行。原来的记录已经在表格中,通过移动右边的滑块可查阅所有的记录。 3、需要数据插入时,就在最后一条记录后输入一条记录。当鼠标点击其他行时,输入的记录会自动保存在表中。 4、需要修改记录时,直接对表中已有记录的数据进行改动,用新值替换原来值。 5、需要删除记录时,先用鼠标单击要删除行的左边灰色方块,使该记录成为当前行,然后按键。为了防止误操作,SQL Server 2000将弹出一个警告框,要求用户确认删除操作,单击“确认”按钮即可删除记录。也可通过先选中一行或多行记录,

反编译APK方法

一.反编译Apk得到Java源代码 转载自: https://www.360docs.net/doc/d410204646.html,/%CB%BF%D4%B5%CC%EC%CF%C2/blo g/item/2284e2debafc541e495403ec.html 工具下载:需用到dex2ja r和JD-GUI这2个工具 dex2jar下载地址: https://www.360docs.net/doc/d410204646.html,/files/dex2jar-0.0.7-SNAPSHOT. zip JD-GUI下载地址: windows版JD-GUI: https://www.360docs.net/doc/d410204646.html,/files/jdgui.zip Linux版JD-GUI: https://www.360docs.net/doc/d410204646.html,/files/jd-gui-0.3.2.linux.i686.tar. gz 步骤: 1.首先找到Android软件安装包中的classes.dex 把.apk文件改名为.zip,然后解压缩,得到其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件

2.把classes.dex拷贝到dex2jar.bat所在目录。 在命令行模式下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex ,生成 classes.dex.dex2jar.jar 3.运行JD-GUI工具(它是绿色无须安装的) 打开上面的jar文件,即可看到源代码 --------------------------------------------------------------------------------- --------------------------------------------------------------------------------- 二.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件。 转载自: https://www.360docs.net/doc/d410204646.html,/s/blog_5752764e0100kv34.html 工具下载: 在https://www.360docs.net/doc/d410204646.html,/p/android-apktool/下载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip 两个包都要下。 步骤:

数据库实验一:建立数据库

数据库实验一:建立数据库 一、实验目的与要求: 1.实验目的 (1)理解SQL Server 数据库的存储结构; (2)掌握SQL Server数据库的建立方法。 2.实验要求 (1)创建数据库 1)创建一个名称为“仓储订货”的数据库,该数据库的主数据文件逻辑名称为order_dat,物理文件名为orderdat.mdf,初始大小为10MB,最大尺寸为50MB,增量为5MB;数据库的事务日志文件逻辑名称为order_log,物理文件名为orderlog.ldf,初始大小为5MB,最大尺寸为25MB,增量为5MB。并且要求主数据文件和事务日志文件的物理位置在不同的硬盘上。 2)创建一个指定多个数据文件和日志文件的数据库。该数据库名称为test2,有1个10MB和1个20MB的数据文件和2个10MB的事务日志文件。数据文件逻辑名称为test2_1和test2_2,物理文件名为test2_1.mdf和test2_2.mdf。主文件是test2_1,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。事务日志文件的逻辑名为test2_log1和test2_log2,物理文件名为test2_log1.ldf和test2_log2.ldf,最大尺寸均为50MB,文件增长速度为1MB。 3)使用文件组创建数据库test3。使用三个文件组(含主文件组,即默认的文件组),每个文件组包含两个数据文件,并且每个文件组要安排在不同的硬盘上。 (2)修改数据库 1)修改建立的“仓储订货”数据库,为之添加一个5MB大小的新数据文件。 2)修改test1数据库,将其中的主数据文件增加一个5MB的存储空间。 3.删除建立的数据库。

FC反编译的简单方法

FC反编译的简单方法: 适用范围:mapper=0,并且没有trainer 如何判断适用范围呢? 只要看文件头就知道了。用16进制编辑器打开ROM,查看前面的16个字节。 要求bit 7的高位(即D4-D7)为0,bit 6的高位(即D4-D7)为0,则mapper=0 要求bit 6的D2为0,则没有trainer 步骤 1.找出3个重要地址nmi, start, irp 2.提取程序部分 3.用工具反汇编 4.分析程序 祥细操作 1找出3个重要地址nmi, start, irq 可用16进制编辑器或”No$nes”,打开ROM,并跳到FFFA,记录下由FFFA开始的连续6个字节。ROM和别的程序一样,在记录地址时,总是先记录低位再记录高位的。 这6个字节分别是nmi, start, irq的低位和高位了。

Start一般是C000或者8000 (16进制的) 2提取程序部分 先要知道mapper=0,ROM的数据结构。 操作是: 去除ROM的文件头16个字节 去除由全是FF的部分到末尾的所有内容。 余下就是程序部分。 另存。 这个文件是ROM的一部分,我取后缀名叫part1 3用工具反汇编 打开“反汇编器.exe”,点右面”6502” 用这个“反汇编器.exe”打开这个.part1 选择文件时,选”ALL FILES”就可以显示了。 点打开后,选中”BIN文件”,并写入start的地址(见步骤1) 确定 4分析程序 由于程序一般中数据和程序混合的,自己要跟踪代码,分析那一段是数据,那一段是指令。一般程序是从第一行开始执行,并且不会拿数据来当指令执行。 也就是说从第一行开始,只要看“跳转”就可以知道程序经过的地址,没有经过的就是数据了。

实验一 创建数据库

实验一创建数据库 一、实验目的 1.掌握企业管理器创建数据库的方法 2.学会创建和修改表 3.能够使用企业管理器创建和修改约束 二、实验内容 1.用“企业管理器”创建符合如下条件的数据库: ·数据库的名字为“教师授课管理数据库”。 ·数据文件的逻辑文件名为“Teachers_dat”,物理文件名为Teachers.mdf,存放在D:\Test目录下(若D:中无此子目录,可先建立此目录,然后再创建数据库)。·文件的初始大小为5MB。 ·增长方式为自动增长,每次增加lMB。 ·日志文件的逻辑文件名字为“Teachers_log”,物理文件名Teachers.ldf,也存放在D:\Test目录下。 ·日志文件的初始大小为2MB。 ·日志文件的增长方式为自动增长,每次增加15%。 2.使用企业管理器在刚创建的“教师授课管理数据库”中创建满足如下条件的三张表:

3.使用企业管理器实现如下操作: a)在授课表中添叫一个授课类别列,列名为Type,类型为char(4)。 b)将授课表的Hours的类型改为Smallint。 c)删除课程表的property列。 4.在三张表中分别添加至少5条记录。 5.将教师授课管理数据库备份到自己的盘上,以备后续实验使用。 三、实验过程 四、实验总结 五、实验过程 1.在开始菜单中找到SQL Server Configuration Manager程序并打开,在SQL Server 2005 服务中将SQL Server(MSSQLSERVER) 启动该项服务。 2.在开始菜单中打开应用程序Microsoft SQL Server Management Studio 3.然后在上点击鼠标右键在这 个选项上单击鼠标左键,建立新的数据库。 4.新的数据库的各项数据如下:

Python反编译pyc完全教程

Python反编译pyc完全教程(两种方法) 写在前面:虽然手机上可以使用许多反编译的软件,但是受限于手机的运存,稍微大一点的pyc代码就不能反编译成功,或者要等很久,因此笔者特研究出怎样在电脑端用python反编译。 ---------------------------------------------------------- ********************************************** ************ QUOTE: 感谢真.天舞大哥提供的另外一种方法,就是使用电脑端的decompile代码,也可以实现反编译哈,感觉比较简单,大家选择一种使用吧。 先安装PY平台 这里下载2.2.3的平台 2.5的不行,用不了 安装完成再把反编译脚本复制到安装盘Lib文件夹里面 再打开“开始”,“程序”,“Python 2.2”,“IDLE (Python GUI)” 把下面编码复制到编辑器里面 >>> from decompile import main(这里按回车键跳下到下一行) >>> main('','.',['c:\\ped.pyc']) 注:c:\\ped.pyc是要编译的文件路径,实际操作的时候要把路径改为你要编译的脚本路径然后Enter键(回车键) 少等片刻........

到C盘看一看,ped.pyc_dis就是反编译出来的脚本了 把后缀改为ped.py就可以了 QUOTE: 最新发现,原来两种方法本质上是一样的,都是调用decompile文件夹里面的相应模块和函数,实现反编译。我写的那种方法其实就是真.天舞大哥说的那种方法的翻版。我写的那种方法是先将py_decompile 模块放在根目录下面,其实它的代码就三句: [Copy to clipboard][ - ] CODE: from decompile import main def decompile(path): main('','.',[path],none,0,0,0)

相关文档
最新文档