首页
社区
课程
招聘
求修改.net程序在内存中数值的思路
发表于: 2011-1-22 13:34 4461

求修改.net程序在内存中数值的思路

2011-1-22 13:34
4461
里有一个.net写的程序,反编译后的代码差不多能读懂。但是有些文件中反编译时多了一些特殊符号,所以编译不过去。这个程序因为需要内网中另一台电脑的数据库环境,所以在我机子上不能运行。

我想做的是:这个程序在运行过程中会从IC卡设备中读到一个数字,我需要把这个数字在保存到数据库(另外一台电脑)前修改掉,比如+1或+2等

哪位有相关经验的提点一下,有什么好的办法没有?比如是做个hook还是写个拦截网络数据包来修改数据?
如果有需要,也可以付费求实现这个功能的程序

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个还真不懂~。楼下的高手回答
2011-1-22 13:50
0
雪    币: 48
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
程序在运行过程中会从IC卡设备中读到一个数字

REFLECTOR反编译后,看不到读这个数据的代码么?看得到的话,修改代码,再生成程序就可以了,

或者,找到地址,用16进制编辑器修改程序
2011-1-26 12:05
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
反编译后,95%的代码可用。但另外有一小部分有问题,出现了一堆类似internal sealed class <>f__AnonymousType0<<CodeName>j__TPar, <Code>j__TPar, <Name>j__TPar>
这样的代码。还有一些类名中有{xxxxxxxxx-xxxx-xxxxxxx-....}这样的GUID格式字符串
所以反编译后再重新编译不成功

我现在想到的一个办法是,做一个拦截TCP包的程序,发现那个包就拦截下来修改完再送出去。这个程序在TCP层没有加密,直接用的sql的insert into语句
2011-1-26 12:18
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
需要動態調試,用 dile ,dbg 都可以斷點(方法斷點,例如Save),看棧,你應該知道數據的,然後看IL,找關鍵函數,在Reflector靜態分析這個關鍵函數,然后在這個方法的最後賦值給變量,就能將你的值保存到數據庫,但是這是每次不同的數據都需要修改一次。如果你有好方法,請共享。。。

或者說我不明白樓主的真正用意
2011-1-26 12:24
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这么说吧:
有一个门禁,大家刷卡上班。有台普通的PC电脑中安装了个程序用来读取大家上班的时间,然后保存到远程的一个数据库中。
我想要做一个小工具,只要工具在运行中,那么大家的上班时间就会提前10分钟(或者指定人的上班时间)。这样讲大家应该懂得。我要做的这个程序不是考勤刷卡的,但是类似它的架构

现在的情况是:
1.使用Reflector反编译得出来的源码因为少数文件有问题不能编译通过,可执行文件有2M大,所以反编译后的代码也很多。
2.从IC设备中读取数据然后存到数据库的这些代码反编译后是正常和能读懂的。
3.保存到远程数据库的SQL语句已知道,并且知道在TCP包中传输的格式(已抓包得到)

。反编译然后修改代码再重新编译的路子,以我现有的能力行不通。
。使用hook的方法不知道可行不可行,我没有钩过.net写的程序,而且对hook研究也不深。
。抓TCP包、改包的方法,我觉得可行。大家有没有什么好的建议或者其它方法。
2011-1-26 13:10
0
雪    币: 504
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
呵呵呵,自力更生吧,不難
2011-1-26 14:13
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好的。谢谢
再放两天就结帖
2011-1-26 14:14
0
游客
登录 | 注册 方可回帖
返回
//