鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: ioio_jy

两个关于Python字符串转换的问题

[复制链接]
发表于 2016-9-25 21:05:13 | 显示全部楼层
ioio_jy 发表于 2016-9-25 18:00
这里你使用了eval(),它计算的结果是保存在了x里面吗?

老夫来说句公道话,楼上那位XY版主已经给你把两个问题给解决(on surface?)了。至于是不是真实的转换,保存结果在什么位置的问题,这位仁兄可以考虑去google下eval的执行原理&源代码之类的bla bla bla ...... btw,从需求分析的角度来说,你这属于更改需求,不在合同范围内,是需要加奖励的~@拈花小仙 @康小泡 @小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-25 21:38:55 | 显示全部楼层
~风介~ 发表于 2016-9-25 21:05
老夫来说句公道话,楼上那位XY版主已经给你把两个问题给解决(on surface?)了。至于是不是真实 ...

很抱歉,你的看法我并不赞同,我说一下原因:
1、请看我的原话:
“需要特别说明的是,在一个文件中,会有非常多的逗号运算,因此我希望程序可以将文件中所有的逗号运算进行转换。”
“文件中可能会有大量的ASCII码,因此我希望程序可以将文件中所有的ASCII转换为对应的字符(尽管上述例子中只出现了一次)”
这说明我的需求是实现转换,甚至是文件中内容的转换。
2、我在之前的楼层中也说了:我需要真实的转换,而不是仅仅显示,否则,我用一个print也可以实现。
3、这不是需求的更改,而是SixPy始终不理解需求,一直按照他自己的想法来做,最简单的例子就是,我想要转换的是“G\x45T”,而他一定要转换“G\\x45T”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-26 10:33:24 | 显示全部楼层
wei_Y 发表于 2016-9-26 10:23
大概这样差不多吧,不用字典,用正则匹配后直接替换。
大文件就用for一行行读取替换。

谢谢,你的写法是对的,不过很抱歉的是,这个问题我昨晚(大半夜)已经想出来了,方法和你是一样的(真希望昨天你就在论坛看到我的帖子)。如果每个版主都能像你一样真诚回答新手的问题,我们论坛会更加和谐。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-26 10:49:03 | 显示全部楼层
ioio_jy 发表于 2016-9-26 10:33
谢谢,你的写法是对的,不过很抱歉的是,这个问题我昨晚(大半夜)已经想出来了,方法和你是一样的(真希 ...

xy很真诚的回答了好久,
其实你只要保存,用xy的方法完全可以,
  1. >>> x=r'("G\x45T", "http://growseo.co.uk/bhdjls", false)'
  2. >>> x = eval(x.split(',')[0][1:])
  3. >>> x
  4. 'GET'
复制代码

eval有返回值。

只是个这种形式的字符串处理起来很简单,
放在文件中就比较麻烦了,想写个通用是有些困难的(自我感觉)。

比如说你给的字符串中如果某个url链接里带上\x这样特征的怎么办?
是替换还是不替换,这些我们回答问题都不知道。

所以这种问题还是给个原文件的好,你可以只截取一小段嘛。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-26 10:57:50 | 显示全部楼层
wei_Y 发表于 2016-9-26 10:49
xy很真诚的回答了好久,
其实你只要保存,用xy的方法完全可以,

解密引擎的编写是一件非常复杂的工作,这里我不需要考虑所有的情况(也不可能考虑到,因为现在黑客脑洞很大,过几天就有新的方法来对抗你的解密),我们有现成的功能强大的解密引擎,不需要我来编这个东西。利用解密引擎就可以将得出的结果送给病毒分析师,编写启发特征了。
这里我只是想针对于我给出的字符串进行转换就够了(因为现在正在写一篇小论文,需要自己实现一个简单的解密程序)。另外,高明的方法是利用主动防御技术,这样就无需解密了,主动防御迟点也会写在我的论文里面。
最后,真的非常感谢你的回答。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-26 11:06:30 | 显示全部楼层
ioio_jy 发表于 2016-9-26 10:33
谢谢,你的写法是对的,不过很抱歉的是,这个问题我昨晚(大半夜)已经想出来了,方法和你是一样的(真希 ...

大神~,问你个问题:
在c语言里有个字符串要包含\,你要如何写??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-26 11:10:29 | 显示全部楼层
SixPy 发表于 2016-9-26 11:06
大神~,问你个问题:
在c语言里有个字符串要包含\,你要如何写??

抱歉,我不是大神,你提出的问题我不知道。
总之我现在会转换了。
对了,按照你的意思
如果转换("G\x45T", "http://growseo.co.uk/bhdjls", false);
还需要首先把它变成("G\\x45T", "http://growseo.co.uk/bhdjls", false);吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-26 11:14:06 | 显示全部楼层
本帖最后由 SixPy 于 2016-9-26 11:22 编辑
wei_Y 发表于 2016-9-26 10:23
大概这样差不多吧,不用字典,用正则匹配后直接替换。
大文件就用for一行行读取替换。

你也没看清楚~
我写的是 '"G\\x45T"'
'("G\\x45T", "http://growseo.co.uk/bhdjls", false)'

此问题的关键在处理\xHH的转义,就没把红色的部分包含进来。
这都看不出来吗 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-26 11:21:07 | 显示全部楼层
ioio_jy 发表于 2016-9-26 11:10
抱歉,我不是大神,你提出的问题我不知道。
总之我现在会转换了。
对了,按照你的意思

在1楼就说了,要你提供原数据
就是怕你看不懂
现在,看吧,你果然在 字面量 的表示方法上纠缠不清
------------
既然你是搞病毒分析的,我就默认你知道编程的常识,比如 c 语言的转义符 \
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-26 11:22:32 | 显示全部楼层
SixPy 发表于 2016-9-26 11:14
你也没看清楚~
我写的是 '"G\\x45T"'
'("G\\x45T", "http://growseo.co.uk/bhdjls", false)'

好吧~。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-26 11:27:01 | 显示全部楼层
SixPy 发表于 2016-9-26 11:14
你也没看清楚~
我写的是 '"G\\x45T"'
'("G\\x45T", "http://growseo.co.uk/bhdjls", false ...

可惜你说的东西我没理解你要表达什么,再给你看一下我的原始需求

2、ASCII码字符的转换
原始字符串:("G\x45T", "http://growseo.co.uk/bhdjls", false);
目标字符串:("GET", "http://growseo.co.uk/bhdjls", false);
文件中可能会有大量的ASCII码,因此我希望程序可以将文件中所有的ASCII转换为对应的字符(尽管上述例子中只出现了一次)
我目前采用的方法是利用正则表达式加上字典,字典中列举出ASCII所有可用字符
现在我希望在不采用这种“穷举”方法的前提下,实现字符的转换。

请问哪里有G\\x45T?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-26 12:05:28 | 显示全部楼层
ioio_jy 发表于 2016-9-26 11:27
可惜你说的东西我没理解你要表达什么,再给你看一下我的原始需求

2、ASCII码字符的转换


http://bbs.fishc.com/forum.php?mod=redirect&goto=findpost&ptid=76553&pid=2671131

看26楼啊
你搞清楚那个问题,自然知道“哪里有G\\x45T?”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-26 12:06:59 | 显示全部楼层
SixPy 发表于 2016-9-26 12:05
http://bbs.fishc.com/forum.php?mod=redirect&goto=findpost&ptid=76553&pid=2671131

看26楼啊

我的需求里面有吗?你为什么总扯这些不在需求里的东西?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-26 12:17:44 | 显示全部楼层
ioio_jy 发表于 2016-9-26 12:06
我的需求里面有吗?你为什么总扯这些不在需求里的东西?

http://bbs.fishc.com/forum.php?mod=redirect&goto=findpost&ptid=76553&pid=2670585
如果你看着 \ 很不爽,17楼已经给你答案了啊,
你还纠结什么呢?
如果你一点技术都没,只想做个伸手党,我在1楼已经向你要原数据了,但是你拒绝了啊,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-26 12:22:21 | 显示全部楼层
SixPy 发表于 2016-9-26 12:05
http://bbs.fishc.com/forum.php?mod=redirect&goto=findpost&ptid=76553&pid=2671131

看26楼啊

俩位大侠可不可以不要闹啦,怕怕哦~ 开心点嘻~
有些问题不辨论得不出最佳答案,但不要因为这点事生气,让我们相互帮助,一起进步哈`
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-26 12:22:49 | 显示全部楼层
SixPy 发表于 2016-9-26 12:17
http://bbs.fishc.com/forum.php?mod=redirect&goto=findpost&ptid=76553&pid=2670585
如果你看着 \ 很 ...

再回应你一下,希望你不要绕圈子了
1、你用eval()和print()得出的结果没区别,我原始需求是转换而不是显示
2、我的原始需求里面没有双斜杠,你非得加上的话也可以,但是如果不加,print()就能直接实现结果
3、如果提问算是伸手党,干脆取消这个提问板块好了
4、原始数据就是那一段字符串,如果你非得改动原始字符串,加上双斜杠,我只能说,你喜欢就好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-8 22:45:26 | 显示全部楼层
围观
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-27 14:00:11 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-28 08:36:09 | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 05:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表