危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览19378925

修改考勤软件的数据库连接字符串

想必每个公司都有考勤机,每个公司都有一些人在迟到的前几秒钟匆忙打卡,我们公司也一样。只是,在我们部门内部流传着一个神奇的软件——改考勤记录的软件(其实没什么神奇的,就是一个用DELPH1写的连接数据库,可以修改考勤数据的小工具)。最近考勤服务器的IP地址变了,写这个软件的人已经到了其他的部门。因此我们需要重新实现一个这样的工具,手头上没有源代码,那么就直接从二进制文件上做着手吧。

这种连接数据库的软件大部分都是用的是ADO控件,使用这种控件都会为该控件设置一个连接字符串。既然是字符串,那最简单的方法就是直接在OD中搜索这个连接字符串。打开OD直接加载该“改考勤记录的工具”并运行它,搜索ASCII和UNICODE字符串,都没有搜到连接字符串。

既然这样不行,那么就换思路进行。由于它是DELPHI写的软件,那么我们就使用DEDE这个工具对其进行反编译。我们用C32ASM打开该软件,并搜索连接字符串中的IP地址。原来的IP地址为“192.168.X.XXX”,井且还有五位的端口号(没有使用SQLSERVER的默认端口),而现在新的口地址为“10.10.XXXX”,使用默认的SQLSERVER端口号,因此不需要带端口号。这样,我们的字符串的长度就有变化了。除了这里以外,连接数据库的密码长度也变了,因此整个部分我们都需要进行处理。    

我这里的思路是直接修改其中的数据,将位数不足的地方使用后面的数据往上填补。最后做一个简单的小节。DELPHI中的控件都是以“T”开头的,就类似MFC的类都是以“C”开头一样。每个控件之间至少由两个字节的“00 00”来间隔。控件的属性与控件属性盼值之间有两个字节进行间隔。第一次我们修改完后报错是因为ImageList无法正确读取数据,而第二次按钮上的图片没有了是因为ImageList控件和前一个控件之间间隔的“00”字符太多了,软件无法识别该控件所致。本文的重点在于没有任何使用一些逆向相关的工具软件,笔者技术一般,平时技术也是在危险漫步上学的,如有什么问题还请大家指正。