用户
搜索

该用户从未签到

管理员

Rank: 9Rank: 9Rank: 9

26

主题

33

帖子

2万

魔法币
收听
0
粉丝
14
注册时间
2018-4-9

i春秋认证美女勋章

发表于 2018-8-1 18:37:57 9411815
常言说,“不懂编程的黑客不是好搬砖工“... 不对,是”不会敲代码的白帽子不是好程序猿”
。。。
编程语言作为大家平时工作学习的重要工具,每个人心中都有自己的“宇宙第一编程语言”那么,作为一个优秀的白帽黑客
就请大家围绕话题:#黑客眼中最值得学习的编程语言是什么?#讨论交流,并且说明理由哦~


请大家理性讨论,千万不要动手打人!



奖励:每个回复都有10魔法币奖励,此外我会挑选最有意思的7个回帖分别奖励
SF航空飞机模型一个





web安全攻防》作者签名限量版一本





零基础入门,从渗透测试信息收集到后渗透攻防,安全专家实战讲解,全面介绍Web渗透核心攻击与防御方式!

摩拜运动喷雾水杯一个(1个名额)
QQ截图20180801181649.png
腾讯正版表情包钥匙扣一个(两个名额)
精美T恤一件(两个名额)


上期话题#你做过脑洞最大/最有趣的CTF题是什么,能分享解题过程吗?#
获奖id:


阿甫哥哥
夜莺
icq_ed92dc16b
XIAOC123
枕边月亮

请以上表哥尽快联系桃子(934301958)兑换奖励!
欢迎加入i春秋QQ群大家庭,每人只能任选加入一个群哦!投稿请加QQ:286894635。
i春秋白帽子军团:451217067
i春秋-韩:556040588
i春秋CTF交流学习群:234714762

回帖奖励 +10

本帖最后由 penguin_wwy 于 2018-8-2 14:56 编辑

又到了喜闻乐见地撕语言环节,话说我个人其实挺喜欢撕语言的,往往讨(撕)论(逼)的时候可以加深对某个语法糖的了解。
但现实是,大部分撕语言的人都不到g点,换句话讲就是喷都喷的不对。
以最常见的C++,不管说的对不对都要上来踩一脚,各种“引经据典”,反正大佬这么说了,我踩一脚也没问题。
误导新人不说,误解也越来越深,一听你是写C++的就投来讳莫如深的眼神,搞得我这个C++的真(黑)爱(粉)粉都不好意思用C++的接班人的名义来推荐Rust了,躺枪啊有木有。
所以在开始正题前我要为C++正名,提高大家黑C++的水平。
大多黑C++的说法也是入门级的说法是C++太复杂,语法糖太多,炫技的东西太多。首先说明,C++确实复杂但这应该成为一个语言的黑点吗?而且你所谓的复杂就是真的复杂吗?Java难道简单吗?你把Jvm规范拿来看看,一天一页你看看多久能看完,分得清interface和@inferface的区别吗?会用lambda吗?
我所知道的最精炼的Lisp,语言标准也有79页,少吗,写成教科书没三五百页能讲明白?任何一个稳定的,广泛使用的语言都有很多你用不到的东西。但是这个语法该不该黑,黑的有没有道理,应该是看为什么会有这个语法糖,需求是什么,需求合不合理,语法糖有没有满足这个需求,有没有副作用。。。而不是因为数量,语法糖太多。那只能说明你自己没有做好取舍。
高级一点的黑法,会说C++难以形成统一的使用标准。这个说法其实非常有道理。因为C++所包含的语法范式太多,所以在使用过程中难以统一,当别人都开始解决需求的时候你还在纠结用哪种初始化语法。但是,这个问题其实在C++11之后已经有了极大的改善,后来的14、17以及即将出现的20,都让C++越来越像一个现代的编程语言,只要你愿意,甚至可以用函数式编程。
另一种高级的说法是C++的基础建设太次了,不管是STL还是Boost,都不太好使,不管开发什么项目都得自己先封装一遍才能满足需求,甚至听说有给C++手写GC库的。这个我也承认,确实。但这不是C++自己的黑点啊,msvc的STL写的什么玩意儿巨硬自己没点AC数吗?
C++的黑点自然是不少,我个人认为比较突出的有这么几个。
一个是C++的ABI兼容做的太次了。这个锅确实是C++的,或者说是标准委员会的,为了兼容C同时也有太多细节没统一标准,大家自己做自己的。前者被迫搞了个extern这种东西出来了,为了获取正确的mangled name。后者的结果是各种平台各种库不兼容,STL这种标准的东西有时候namespace都不一致,这里面坑大了。
再说一个编译器设计上的问题,Clang写的其实挺不错,但是存在的一些问题,一个是C++和C的语法杂糅在一起解析;再一个Parser过程和Lexer也掺杂在一起(虽然带来了编译时间上的缩短);最后就是从源码到AST再到IR的下降太快,llvm bitcode本身的层次太过于具象,导致丢失信息太多,表现能力下降,也使得编译期间做更多检查的难度大大提高(这里要吹一波Rust了,Rust的IR设计合理,静态分析水平独占鳌头,所有权检查的设计更是规避了C++99.9999%的内存问题,当之无愧的C++接班人)。
说了这么多下面开始说正题。emmmm。。。上面内容不想看的可以从这里开始。
好多人推荐Python,python这个东西最大的优点就是生态好,库多。至于其他的什么语法简单(Lisp:你说啥?),容易上手(Ruby:what?)这些东西都可以忽略。Python的劣势其实也是一般动态语言的劣势,一言以蔽之就是:动态类型一时爽,代码重构火葬场。你要看明白别人写的啥十分困难(可读,也是语言设计和使用的重要部分),除此之外python2和3的兼容问题,编码问题等等。想省事可以用Python,想玩玩可以学Python,但是不推荐靠这个吃饭。
有推荐Java的,Java这个东西我比较喜欢,但是平时一个人做东西用这个玩意儿太冗余了。这是个为团队协作而生的语言,吃饭的利器,但是自己用显得啰嗦。
Go就算了,这种2010年出生还不支持泛型的东西不明白除了Google自己能用还有谁能用(可能还有腾讯,23333)。当初说“我们觉得大部分时间用不到泛型”,然后2.0版本,“真香”。
PHP不熟,就不多评价了。
Ruby什么的其实我挺喜欢的,但是这种东西上来就是鸭子类型这种容易让新人走火入魔的东西,当做第二第三门语言学习不错,可以锻炼OO思维,加强理解。
JS的话包括小众点的IO、TS,和Ruby一样,作为补充让你了解编程语言的大千世界,但是一开始玩这个可能走火入魔。
说来说去好像就C很不错,对于初学者,比较贴近正常的思考方式,容易理解。语法糖少,相对简练。更重要的是附加价值高,对理解计算机系统有帮助。
最后正式向大家推荐Rust。Rust是一种系统级的编程语言,有着和C/C++一样牛逼的执行效率、出色的包管理、通过静态分析保证内存安全,保证线程安全。快、全能、安全。更重要的事,Rust还是一门新生的语言,和Go那种出生就老气横秋的不同,Rust拥抱变化,顺应PL的历史进程,你可以在Rust身上看到前沿新技术的体现,它的RFC就是最好的Paper。保证学了不吃亏,学了不上当。
rust.PNG
Rust镇楼



我改行了。。。
http://penguin-wenyang.wang
使用道具 举报 回复
创想科技时代 版主 爱春秋的天下,我要九十九 i春秋认证 春秋文阁
推荐
发表于 6 天前
本帖最后由 创想科技时代 于 2018-8-14 11:11 编辑

今天我要提一个被大家忽略的编程语言,知名度很高,但是一直不被重视的--- javascript
编程语言排行榜中,
人工智能选了python,因为其简单易学, 可移植性强,  有丰富的库,  可扩展性高等优势占据榜首的位置
大数据选了java, 因为其体系庞大,安全性高(Stutus2那个纯属失误),跨平台运行、多线程、高并发、低耦合,健壮性强等特点。 占据排行榜第二
而全栈开发选了javascript, 因为其语法灵活、庞大的类库(npm是至今为止最庞大的包管理器,比pip和maven加起来都庞大数倍)
估计在所有人眼里,javascript就仅仅只是依靠在html上的Scipt标签的一个脚本语言
只是为了XSS注入、CSRF、XSRF攻击才学的
但是很多人不知道javascript运行在客户端,当前端开发工程师
Nodejs可以开发服务器API,当服务器端工程师
Hybrid、 React Navicat可以开发移动应用,当移动应用工程师
NW.js 、 electron、React Desktop可以开发桌面应用,当桌面应用工程师
Canves、OpenGL Unity可以开发游戏,当游戏开发工程师
Skech、FramerJS 可以搞设计、搞原型、当交互设计师
Ruff可以搞嵌入式开发,做嵌入式开发工程师
javascript有预编译语法less
javascript有包管理器webpack + bower + npm
javascript有模块化加载器gulp
javascript有打包工具grunt
javascript有React + vuejs这样的ECMAScript6语法体系,超越平台的发展形成未来的语法


虽然编程语言各有千秋,都有自己不用的领域。 但是跨度能像javascript这么大的还做得那么好的。 绝无仅有

------------------------------分割线-------------------------
javascript不能搞人工智能? TensorFlow.js了解一下
觉得自己计算机功底不行?
有想法又不会编程?
想要继续深入学习?
想学习又找不到资料?
没人带自学很痛苦?群号: 434199192
使用道具 举报 回复

回帖奖励 +10

本帖最后由 hideonbeach 于 2018-8-7 10:10 编辑

    Python被称为胶水语言,具有简单易学、免费开源、高层语言、可移植性强、面向对象、可扩展性、可嵌入型、丰富的库、规范的代码等优点。Python的强大在于有很多的第三方库, 很多你想要的东西有现成的库,使用python导入就可以,站在巨人的肩膀上,避免了重复造轮子 。比如一系列的破解带验证码的网站,最近就在使用tesseract-ocr,可以识别出简单的图片验证码。而且现在大部分linux系统都预装了python,总不能你入侵了一台主机再去给他JAVA安装环境吧?

    有人说python的运行速度慢,这是事实,但是这种慢对我们开发工具来说区别不大,使用python开发来节省的时间远胜于运行所消耗的时间。而且python开发更加灵活,更适合黑客根据需要快速开发出功能使用,对于速度的要求就没那么高了。现在发展大火的机器学习人工智能等,大部分都是以python为开发语言设计的框架,使用范围更广,紧跟时代潮流,发展更加广阔。

    C语言运行速度快,更偏向于底层,使用不够灵活,而更多的黑客行为应该更偏向于上层,灵活性及使用方便是python的必胜法宝。google和oracle闹掰,JAVA也逐渐被oracle放弃,目前已经属于下滑阶段,现在主要用于大型服务系统。php出现在各种ctf题目,而且现在还是有很多网站是用php,还是有必要学一下的。

最后:“人生苦短,我用Python。”Python是最好的语言!一图胜千言:

123

123
2018 IEEE Spectrum 编程语言排行榜 Top 10
使用道具 举报 回复
鞋合不合适,只有脚知道。
语言合不合适,只有学了知道。
你能用到的语言就是你值得学习的语言,每门语言所擅长的领域不同。
你想要去哪方面发展,就学那种语言
1.c/c++  永远不会out的语言,适合偏底层,研究缓冲区溢出啊,帮助理解底层协议,也可以写一些远控软件等。
2.java语言  不用说,这门语言想必大家都听过,跨平台语言,b/s架构,c/s架构都可以。很多企业也用java做web开发的首选。
3.c# 与java差不多,有着.net Framework支持。
4.php  web开发人员的最爱,学习web渗透,渗透人员的首选语言。跨平台,灵活的脚本语言。
5.python   人生苦短,我用python。 不想当脚本小子?除了学c/c++,我们又多了一条黑客路。
我只想说:不想当脚本小子的,"嫌弃"c++的,去学python吧,虽然说python语法简单,但是侧面也体现了python运行速度要慢的。看看kali,bt5,就知道安全领域下的python多么吃香了
6.  html,js,sql语句  。。。。
因为领域不同,所以每个人的感觉不同。
我是学习web方面的,所以学的php,js,python
但是不知道c++,perl,ruby。。的,所以无法回答
你最值得学习的语言,还是得看你的领域。
最后一句话,强力推荐:python
人生苦短,我用python。

咳咳,我要书,咳咳,不是买不起,我只是要签名,嗯,真的,我要签名。咳咳





使用道具 举报 回复
发表于 2018-8-2 16:40:16

回帖奖励 +10

  本来这种话题几十年前就聊烂了再争也没啥意义.不过既然蛋发话了,就凑活写一下好了
  关于语言这个东西,从来就只有合适的没有最好的,所以在你明确目标之前,拿语言来做比较就是瞎扯淡,比如你要做网页你非要用C语言来写,你要写C52这种MCU嵌入式程序非要上PHP,这不是瞎扯淡么,首先我自认为不是黑客,不过作为一个开发人员来说,如果你非要我推荐一门语言给你学,那么我会向你推荐C语言,首先不要误会,推荐C语言并不是我想说C语言有多好,而是学习C语言对一个人理解计算机的组成结构,程序是怎么运行的, 函数是怎么调用的,数据结构在内存中是怎么回事有很大的帮助.


  如果你要说我想学java我要开发牛逼的android应用,我想学C++,我想装逼写点天王老子都看不懂的语法糖,我想学scheme我要另行僻径撸lisp藐视你们这群渣渣语言,我想学汇编,我要把x86 x64 ARM MIPS 51 powerPC指令集全部肝一遍挥洒我牛逼的青春.那么这些选择我只能说你自便.想学就学呗,反正最初不管别人怎么给你推销xx语言最终还不是跟着自己的感觉走.就是不要学到一半突然拍大腿:麻蛋,当初就是这王八羔子给我推荐这垃圾语言坑的我不要不要的
就行了,呵呵

使用道具 举报 回复
发表于 2018-8-7 09:36:54
有人说PHP是最好的语言,这个梗其实不是来自某个人,而是出自PHP的官方文档
PHP is the best language for web programming, but what about other languages?
PHP是最好的网络编程语言,但是其他语言呢?

QQ截图20180807090438.png
这只是官方文档这么说,我并不这么觉得,因为PHP入门快,但是奇葩的东西太多了
举个栗子,每次写代码的时候,都要找"XXX功能用的啥函数"
2.jpg
(其他的函数会这么贴心吗?)
我觉得没有最好的语言,每个语言都有它的弊端
但是我最近的系列教程是Python,所以,我得认为Python是最好的语言,啊哈哈哈
为什么呢??
因为他有广泛的库便于操作,而且易上手,不像JAVA啥的,烧头发
举个栗子,JAVA通过I/O读取文件要写十行代码,而Python两行就可以完成
他也是物联网的趋势吧,Rasp-berry PI已经把他作为开发基础了...
最后来个各个语言的最低平均薪资图
4.jpg
所以说,学了Python除了py通红以外,你还生活无忧
再bb一句,有人说PHP,JAVA的法力无边,我家Python直接无法无天,skrskr
打歌时间
都在黑炮王,我只好挺下他了,skrskr
Kris Wu的Young OG










一位特爱收藏Supreme的大哥哥....
使用道具 举报 回复

回帖奖励 +10

个人觉得是在某段时期你想做什么吧:
1.某天遇到某个软件,但是付费,怎么办,OK,搞起来,c, c++,汇编,python,windows,脱壳,od,ida弄起来。这段时期语言最适合的语言c,c++,汇编,恭喜你从入门到放弃
2.遇到某个心仪的妹子也在用这软件,OK,搞起来,大晚上花时间去调试,脱壳,绕过混淆和反调试等技术,找找溢出啊,格式化字符串漏洞啊,UAF,double free等等,然后高级漏洞利用技术,最后你会发现妹子早就不用了恭喜你从入门到放弃
3.遇到某个网站,想要深入了解它,OK,搞起来,top 10弄起来,html  css  js  php ,java,python,linux和各种框架学一遍等等,恭喜你从入门到放弃,web安全最适合的语言嘛,当然很多喽
4.想要和Android深入了解,Smali语言,java过一遍,各种脱壳手段等等,移动端漏洞范围更广,然后恭喜你从入门到放弃
5.物联网一大推,嵌入式系统,单片机,数模两电,高数,仿真器,汇编之类啦等等
6.谈社工,心理学你得看吧
7.学会开锁吧,了解锁芯,学会使用开锁工具,然后从入门到入狱
没有最适合的语言,就是看你想弄啥勒,任何都是语言,只要想,去学习,什么都可以干掉
使用道具 举报 回复

回帖奖励 +10

本帖最后由 XIAOC123 于 2018-8-2 10:24 编辑

虽然编程语言是工具,但是工欲善其事,必先利其器。
主要用的几个语言。汇编,python,脚本语言。排名不分先后。
1.逆向,恶意程序分析,内核安全等都需要汇编语言。
A.PNG
B.PNG
2.python有很多很多好用的工具包,比如pwn用pwntools和zio
C.PNG
密码和编码常用的库有gmyp2,Crypto,libnums,base64,hashlib等
from Crypto.Cipher import AES
from Crypto import Random
...
检测利用sql注入漏洞有sqlmap
E.PNG
抓取数据包 pypcap和dpkt。还有像Impacket,pynids等一些处理的库。
写模型常用有scikit-learn,mxnet,tf,pytorch,numpy等库。 G.PNG
调试和逆向有idapython等等一些库。
内存取证有Volatility等等一些库。
...
python太多好用的库了,这里就不列举了。
4.脚本语言常用有shell,php,asp,js。分析大点的数据要快点出结果可以写写shell。渗透中的反弹shell等等。php,asp等webshell利用,另外还有js的跨站脚本攻击。


如果让我只选一个,我只选汇编,233333。






使用道具 举报 回复
发表于 2018-8-1 19:28:13

回帖奖励 +10

个人感觉是当然是python啦  很多神奇都是python进行编写的 还有一些EXP等  而且python在工作编写脚本什么很快速便捷

我觉得每个黑客心里都要给python留给位置
使用道具 举报 回复

回帖奖励 +10

当然是python大法好,qq头像都用一年多了,没有语言能表达我对它的爱呀哈哈
使用道具 举报 回复
发表于 2018-8-1 20:32:05

回帖奖励 +10

你有你的python ruby gogogo,我有我大易语言,不是很牛,但是够用,安排!
http://www.imsunshine.cn/
使用道具 举报 回复
发表于 2018-8-1 20:40:43

回帖奖励 +10

黑客的精神态度是很重要的,但技术则更是重要。黑客的态度虽然是无可取代,随著新科技的发明和旧技术的取代,这些语言工具随时间在慢慢的改变。最早用机器语言写程序,直到我们开始使用HTML5,JS。不过,在1996年末机器语言是基础的hacking技能。在1997年,理所当然的,你必须学会C。 但,如果你只是学一种语言,那么你不能算是一位黑客,了不起只能算是一个programmer。除此,你还必须学会学会以独立于任何程序语言之上的概括性观念来思考一件程序设计上的问题。要成为一位真正的黑客,你必须要能在几天之内将manual内容和你目前己经知道的关连起学会一种新的语言。也就是说,你必会学还了C之外的东西,你至少还要会PHP,Java,Python,ruby,Go等等。总而言之,语言在不停的更新换代,适合当下的才是最好的语言。
所以最好的编程语言是Thinking in Programming
使用道具 举报 回复
发表于 2018-8-1 21:37:46

回帖奖励 +10

std::cout<<"C++:你们在说啥?喵喵喵?";
使用道具 举报 回复
发表于 2018-8-1 21:51:14

回帖奖励 +10

你认为是顺手的就是是最好的,但方便快捷还是首推py,看好go的发展
使用道具 举报 回复

回帖奖励 +10

python智能gogogo,java项目有木有?
大C、C#、C++,当然各有所爱了!
使用道具 举报 回复

回帖奖励 +10

我觉得是Python,Python写脚本比较简洁,写起来也比较快,Python写出来的脚本也运行的很快,多线程非常快非常好用,Python也有很多强大的开源库给我们使用,现在Python在大数据和人工智能方面都应用很广。感觉黑客们也挺喜欢用易语言的,写起工具来也很快很简单。桃子姐,我想要那本书
使用道具 举报 回复
发表于 2018-8-1 23:10:00

回帖奖励 +10

Python的语法非常简单优雅,入手非常快,很适合新手学习。Python除了使用Python本身编写外,还可以混合使用像C语言、Java语言等编写。Python具有本身有丰富而且强大的库,而且由于Python的开源特性,第三方库也非常多,例如:在web开发、爬虫、科学计算等等。尤其是第三方库,给我们提供了很多强大的库,我们却能轻易使用。
使用道具 举报 回复
发表于 2018-8-2 00:54:36

回帖奖励 +10

最熟的是C,毕竟先入为主嘛,现在觉得python更方便,编程语言这种事情确实是要看技术发展的,但是我觉得没有好到完美的语言,只有完美适合自己的语言。
使用道具 举报 回复
发表于 2018-8-2 08:15:05

回帖奖励 +10

PY大法好啊!
拓展性好,现在电脑变好了,计算性不是什么大问题了
使用道具 举报 回复
发表于 2018-8-2 08:18:38

回帖奖励 +10

黑客眼中最好的编程语言我不知道,我只知道PHP是世界上最好的语言!
苟非吾之所有,虽一毫而莫取
使用道具 举报 回复

回帖奖励 +10

python——好多工具都是python写的,sqlmap,xsspy啥的。
html,css,js——XSS,CSRF,XSRF等都是基于这些
PHP——感觉《白帽子将web安全》与《web前端黑客解密》大部分例子都是需要PHP的功底才能理解的
身为一名萌新,如果可以重来,肯定先学PHP,然后python,然后html,js,css,最后java啥的。
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册