.Net平台 C# 程序, 使用DILE(Dotnet IL Editor) 进行动态调试

本文介绍了如何使用DILE (Dotnet IL Editor) 在Windows平台下进行.Net程序的动态调试。相较于Reflector,DILE允许在没有pdb文件的情况下调试IL代码,并提供源代码查看,提高调试效率。通过新建项目,加载.Net程序,设置启动项,然后使用类似Visual Studio的调试方式进行调试。
摘要由CSDN通过智能技术生成

最近在研究Windows平台下,.Net程序的逆向。
比较常用的方法是使用Reflector,打开.Net程序,可以直接看到源代码。这种方法比较适合静态代码分析,如果代码量很大,想要找到关键代码,效率不是很高。

此时可以使用动态调试的方法。
Windows平台下,动态调试软件很多,针对.Net程序,推荐DILE软件。
DILE则是一款调试工具,全称Dotnet IL Editor,它可以在没有pdb文件的情况下,进行调试。调试的代码虽然是.Net的中间语言IL,但其中也会有相应的源代码,可以方便查看代码的执行过程以及各个函数的参数,下面简单介绍DILE的使用方法。

首先下载后打开,看到如下界面。
这里写图片描述

新建项目
这里写图片描述

打开.Net程序

在您的代码中,有几个拼写错误和语法错误: 1. `import sqlite3 import os` 应该写为 `import sqlite3, os`,这样才能正确导入多个模块。 2. `if os.path.exists(db_file): os.remove(db_dile)`,应该将 `db_dile` 改为 `db_file`,否则会报错。 3. `sqlstr='''CREATE TABLE stuTAB( stoNo TEXT NO NULL stoName TEXT NO NULL stoScore TEXT NO NULL stoMajor TEXT NO NULL)'''` 这一行的语法错误是在 `TEXT NO NULL` 中间应该加上逗号分隔开,应该写为 `stoNo TEXT NOT NULL, stoName TEXT NOT NULL, stoScore TEXT NOT NULL, stoMajor TEXT NOT NULL)`。 4. `conn.commite()` 应该改为 `conn.commit()`。 5. `while True: stoNo=input("输入学号") if stoNo==-1: break` 这一部分应该将 `-1` 改为字符串 `"-1"`,否则会导致输入学号时无法正常退出循环。 6. `sqlstr='''INSERT INTO stuTAB(stoNo,stuName,stoScore,stoMajor)VALUES(stoNo,stuName,stoScore,stoMajor)'''` 中的 `stuName` 应该改为 `stoName`,否则会报错。 下面是修改后的代码: ``` import sqlite3, os db_file = "d:\\python\\stuInfo.sqlite" if os.path.exists(db_file): os.remove(db_file) os.makedirs(os.path.dirname(db_file), exist_ok=True) conn = sqlite3.connect(db_file) cur = conn.cursor() sqlstr = '''CREATE TABLE stuTAB( stoNo TEXT NOT NULL, stoName TEXT NOT NULL, stoScore TEXT NOT NULL, stoMajor TEXT NOT NULL)''' cur.execute(sqlstr) conn.commit() print("1") while True: stoNo = input("输入学号") if stoNo == "-1": break stoName = input("输入姓名") stoScore = input("成绩") stoMajor = input("专业") sqlstr = '''INSERT INTO stuTAB(stoNo, stoName, stoScore, stoMajor) VALUES (?, ?, ?, ?)''' cur.execute(sqlstr, (stoNo, stoName, stoScore, stoMajor)) conn.commit() print("成功") conn.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值