1.çè±ä»£ç ç¼ç¨python(ç«ç°è±ä»£ç ç¼ç¨python)
2.逆向pyinstaller打包的祝福祝福exe软件,获取python源码(2)
3.中秋节代码祝福语
4.逆向pyinstaller打包的源码语小源码exe软件,获取python源码(3)
5.十款代码表白特效,程序一个比一个浪漫 2021-11-08 21:01·Java码农之路
6.源码资本:一场自我迭代的祝福祝福持续升级
çè±ä»£ç ç¼ç¨python(ç«ç°è±ä»£ç ç¼ç¨python)
æ¾çè±ç代ç
#-*-coding:utf-8-*-importmath,random,timeimportthreadingimporttkinterastkimportreuuidFireworks=[]maxFireworks=8height,width=,classfirework(object):def__init__(self,color,speed,width,height):=uuid.uuid1()self.radius=random.randint(2,4)~4åç´ self.color=colorself.speed=speed.5-3.5ç§self.status=0ï¼status=0ï¼çç¸åï¼status=1ï¼å½statusæ¶ï¼çè±ççå½æç»æ¢self.nParticle=random.randint(,)self.center=[random.randint(0,width-1),random.randint(0,height-1)]self.oneParticle=[]ï¼%ç¶ææ¶ï¼self.rotTheta=random.uniform(0,2*math.pi)ï¼x=a*cos(theta),y=b*sin(theta)=[a,b]
pythonç«é ·çè±è¡¨ç½æºä»£ç æ¯å¤å°ï¼å¦å®æ¬æç¨åï¼ä½ ä¹è½ååºè¿æ ·ççè±ç§ã
å¦ä¸å¾ç¤ºï¼æ们è¿ééè¿è®©ç»é¢ä¸ä¸ä¸ªç²ååè£ä¸ºXæ°éçç²åæ¥æ¨¡æçç¸ææãç²åä¼åçï¼è¨èâï¼æææ¯å®ä»¬ä¼ä»¥æé移å¨ä¸ç¸äºä¹é´çè§åº¦ç¸çãè¿æ ·å°±è½è®©æ们以ä¸ä¸ªåå¤è¨èçååå½¢å¼æ¨¡æåºçè±ç»½æ¾çç»é¢ã
ç»è¿ä¸å®æ¶é´åï¼ç²åä¼è¿å ¥ï¼èªç±è½ä½âé¶æ®µï¼ä¹å°±æ¯ç±äºéåå ç´ å®ä»¬å¼å§å è½å°å°é¢ï¼ä»¿è¥ç»½æ¾åççççè±ã
åºæ¬ç¥è¯ï¼ç¨PythonåTkinter设计çè±ã
è¿éä¸åä¸è¡èææ°å¦ç¥è¯å ¨ä¸¢åºæ¥ï¼æ们边å代ç 边说ç论ãé¦å ï¼ç¡®ä¿ä½ å®è£ åå¯¼å ¥äºTkinterï¼å®æ¯Pythonçæ åGUIåºï¼å¹¿æ³åºç¨äºåç§åæ ·ç项ç®åç¨åºå¼åï¼å¨Pythonä¸ä½¿ç¨Tkinterå¯ä»¥å¿«éçå建GUIåºç¨ç¨åºã
importtkinterastk
fromPILimportImage,ImageTk
fromtimeimporttime,sleep
fromrandomimportchoice,uniform,randint
frommathimportsin,cos,radians
é¤äºTkinterä¹å¤ï¼ä¸ºäºè½è®©çé¢ææ¼äº®çèæ¯ï¼æ们ä¹å¯¼å ¥PILç¨äºå¾åå¤çï¼ä»¥åå¯¼å ¥å ¶å®ä¸äºå ï¼æ¯å¦timeï¼randomåmathãå®ä»¬è½è®©æ们æ´å®¹æçæ§å¶çè±ç²åçè¿å¨è½¨è¿¹ã
Tkinteråºç¨çåºæ¬è®¾ç½®å¦ä¸ï¼
root=tk.Tk()
为äºè½åå§åTkinterï¼æä»¬å¿ é¡»å建ä¸ä¸ªTk()æ ¹é¨ä»¶ï¼rootwidgetï¼ï¼å®æ¯ä¸ä¸ªçªå£ï¼å¸¦ææ é¢æ åç±çªå£ç®¡çå¨æä¾çå ¶å®è£ 饰ç©ãè¯¥æ ¹é¨ä»¶å¿ é¡»å¨æ们åå»ºå ¶å®å°é¨ä»¶ä¹åå°±å建å®æ¯ï¼èä¸åªè½æä¸ä¸ªæ ¹é¨ä»¶ã
w=tk.Label(root,text="HelloTkinter!")
è¿ä¸è¡ä»£ç å å«äºLabelé¨ä»¶ã该Labelè°ç¨ä¸ç第ä¸ä¸ªåæ°å°±æ¯ç¶çªå£çååï¼å³æ们è¿éç¨çï¼æ ¹âãå ³é®ååæ°ï¼textâæææ¾ç¤ºçæåå 容ãä½ ä¹å¯ä»¥è°ç¨å ¶å®å°é¨ä»¶ï¼Buttonï¼Canvasççã
w.pack()
root.mainloop()
æ¥ä¸æ¥çè¿ä¸¤è¡ä»£ç å¾éè¦ãè¿éçæå æ¹æ³æ¯åè¯Tkinterè°æ´çªå£å¤§å°ä»¥éåºæç¨çå°é¨ä»¶ãçªå£ç´å°æ们è¿å ¥Tkinteräºä»¶å¾ªç¯ï¼è¢«root.mainloop()è°ç¨æ¶æä¼åºç°ãå¨æä»¬å ³éçªå£åï¼èæ¬ä¼ä¸ç´å¨åçå¨äºä»¶å¾ªç¯ã
å°çè±ç»½æ¾è½¬è¯æ代ç
ç°å¨æ们设计ä¸ä¸ªå¯¹è±¡ï¼è¡¨ç¤ºçè±äºä»¶ä¸çæ¯ä¸ªç²åãæ¯ä¸ªç²åé½ä¼æä¸äºéè¦çå±æ§ï¼æ¯é äºå®çå¤è§å移å¨ç¶åµï¼å¤§å°ï¼é¢è²ï¼ä½ç½®ï¼é度ççã
跨年çè±ä»£ç ï½ç¨Pythonéä½ ä¸åºè·¨å¹´çè±ç§å·²ç»æ¥è¿å°¾å£°äºï¼å³å°å°æ¥ï¼æ¬ææ们ç¨Pythonéä½ ä¸åºè·¨å¹´çè±ç§ã
æ们ç¨å°çPython模åå æ¬ï¼tkinterãPILãtimeãrandomãmathï¼å¦æ第ä¸æ¹æ¨¡å没æè£ çè¯ï¼pipinstallä¸ä¸å³å¯ï¼ä¸é¢çä¸ä¸ä»£ç å®ç°ã
导åº
çè±é¢è²
å®ä¹çè±ç±»
çæ¾çè±
å¯å¨
çä¸ä¸ææï¼
年跨年çè±ä»£ç å¯å¤å¶
çè±ä»£ç å¦ä¸ï¼
packagelove;
importjava.applet.Applet;
importjava.awt.Color;
importjava.awt.Graphics;
importjava.net.URL;
importjava.util.Random;
çè±
@authorenjoy
@SuppressWarnings("serial")
publicclassQextendsAppletimplementsRunnable
publicintspeed,variability,Max_Number,Max_Energy,Max_Patch,
Max_Length,G;
publicStringsound;
privateintwidth,height;
privateThreadthread=null;
privateBeaClassDemobcd[];
publicvoidinit()?
inti;
this.setSize(,);
width=getSize().width-1;
height=getSize().height-1;
speed=1;?//çè±ç»½æ¾çé度
variability=;
Max_Number=;?//å¯ååºçè±çæ大æ°ç®
Max_Energy=width+;
Max_Patch=;?//æ大çæç¹æ°
Max_Length=;?//æç¹çæ大è·ç¦»
G=;?//åå°é¢å¼¯æ²çå度
bcd=newBeaClassDemo[Max_Number];
for(i=0;iMax_Number;i++)
bcd[i]=newBeaClassDemo(width,height,G);
}
publicvoidstart(){
if(thread==null){
thread=newThread(this);
thread.start();
}
}
@SuppressWarnings("deprecation")
publicvoidstop(){
if(thread!=null){
thread.stop();
thread=null;
}
}
@SuppressWarnings({ "unused","static-access"})
publicvoidrun(){
inti;
intE=(int)(Math.random()*Max_Energy*3/4)+Max_Energy/4+1;
intP=(int)(Math.random()*Max_Patch*3/4)?//çè±çæç¹æ°
+Max_Patch/4+1;
intL=(int)(Math.random()*Max_Length*3/4)?//çè±å¯åå°åºçè·ç¦»
+Max_Length/4+1;
longS=(long)(Math.random()*);
booleansleep;
Graphicsg=getGraphics();
URLu=null;
while(true){
try{
thread.sleep(/speed);
catch(InterruptedExceptionx){
sleep=true;
for(i=0;iMax_Number;i++)
sleep=sleepbcd[i].sleep;
if(sleepMath.random()*variability){
E=(int)(Math.random()*Max_Energy*3/4)+Max_Energy/4
+1;
P=(int)(Math.random()*Max_Patch*3/4)+Max_Patch/4
+1;
L=(int)(Math.random()*Max_Length*3/4)+Max_Length/4
+1;
S=(long)(Math.random()*);
for(i=0;iMax_Number;i++){
if(bcd[i].sleepMath.random()*Max_Number*L1)
bcd[i].init(E,P,L,S);
bcd[i].start();
bcd[i].show(g);
publicvoidpaint(Graphicsg)?
g.setColor(Color.black);
g.fillRect(0,0,width+1,height+1);
classBeaClassDemo
publicbooleansleep=true;
privateintenergy,patch,length,width,height,G,Xx,Xy,Ex[],Ey[],x,
y,Red,Blue,Green,t;
privateRandomrandom;
publicBeaClassDemo(inta,intb,intg)
width=a;
height=b;
G=g;
publicvoidinit(inte,intp,intl,longseed)?
inti;
energy=e;
patch=p;
length=l;
//å建ä¸ä¸ªå¸¦ç§åçéæºæ°çæå¨
random=newRandom(seed);
Ex=newint[patch];
Ey=newint[patch];
Red=(int)(random.nextDouble()*)+;
Blue=(int)(random.nextDouble()*)+;
Green=(int)(random.nextDouble()*)+;
Xx=(int)(Math.random()*width/2)+width/4;
Xy=(int)(Math.random()*height/2)+height/4;
for(i=0;ipatch;i++){
Ex[i]=(int)(Math.random()*energy)-energy/2;
Ey[i]=(int)(Math.random()*energy*7/8)-energy/8;
publicvoidstart
t=0;
sleep=false;
publicvoidshow(Graphicsg)?
if(!sleep)
if(tlength)
inti,c;
doubles;
Colorcolor;
c=(int)(random.nextDouble()*)-+Red;
if(c=0c)
Red=c;
c=(int)(random.nextDouble()*)-+Blue;
if(c=0c)
Blue=c;
c=(int)(random.nextDouble()*)-+Green;
if(c=0c)
Green=c;
color=newColor(Red,Blue,Green);
for(i=0;ipatch;i++)
s=(double)t/;
x=(int)(Ex[i]*s);
y=(int)(Ey[i]*s-G*s*s);
g.setColor(color);
g.drawLine(Xx+x,Xy-y,Xx+x,Xy-y);
if(t=length/2)
intj;
for(j=0;j2;j++)
s=(double)((t-length/2)*2+j)/;
x=(int)(Ex[i]*s);
y=(int)(Ey[i]*s-G*s*s);
g.setColor(Color.black);
g.drawLine(Xx+x,Xy-y,Xx+x,Xy-y);
常ç¨çç¼ç¨è¯è¨ã
ç¼ç¨è¯è¨ä¸ï¼Cè¯è¨
Cè¯è¨æ¯ä¸çä¸ææµè¡ã使ç¨æ广æ³çé«çº§ç¨åºè®¾è®¡è¯è¨ä¹ä¸ãå¨æä½ç³»ç»åç³»ç»ä½¿ç¨ç¨åºä»¥åéè¦å¯¹ç¡¬ä»¶è¿è¡æä½çåºåï¼ç¨Cè¯è¨ææ¾ä¼äºå ¶å®é«çº§è¯è¨ï¼è®¸å¤å¤§ååºç¨è½¯ä»¶é½æ¯ç¨Cè¯è¨ç¼åçã
ç¼ç¨è¯è¨äº:java
Javaæ¯ä¸ç§å¯ä»¥æ°å跨平å°åºç¨è½¯ä»¶çé¢å对象çç¨åºè®¾è®¡è¯è¨ï¼æ¯ç±SunMicrosystemså ¬å¸äºå¹´5ææ¨åºçJavaç¨åºè®¾è®¡è¯è¨åJavaå¹³å°ï¼å³JavaSE,JavaEE,JavaMEï¼çæ»ç§°ã
ç¼ç¨è¯è¨ä¸:c++
C++è¿ä¸ªè¯å¨ä¸å½å¤§éçç¨åºåååä¸é常被读åâCå å âï¼è西æ¹çç¨åºåé常读åâCplusplus","CPPâãå®æ¯ä¸ç§ä½¿ç¨é常广æ³ç计ç®æºç¼ç¨è¯è¨ãC++æ¯ä¸ç§éææ°æ®ç±»åæ£æ¥çãæ¯æå¤éç¼ç¨èå¼çéç¨ç¨åºè®¾è®¡è¯è¨ã
逆向pyinstaller打包的exe软件,获取python源码(2)
年,源码语小源码我开发了第二个安全运营工具——统一运营,程序maven 下载权限源码专为驻场运营管理员设计。祝福祝福该工具需要与第一个工具安全事件分析(ailx:逆向pyinstaller打包的源码语小源码exe软件)配合使用。安全事件分析工具会产生一个db文件,程序存储客户态势感知平台上的祝福祝福安全事件信息。统一运营工具对多个客户的源码语小源码数据进行横向AI聚类分析和纵向历史基线分析,并构建分析报表,程序自动生成邮件。祝福祝福在此过程中,源码语小源码我使用了一个复杂的程序算法进行横向对比,即9:1开,强制%的安全驻场不及格。近期,遇到一个beacon加密程序被同事破解,激发了我对逆向的兴趣,于是我开始逆向pyinstaller打包的exe软件,获取python源代码。
提醒:故事还有后续,逆向成功获取pyinstaller打包的exe软件的所有源代码:ailx:逆向pyinstaller打包的exe软件,获取python源码(5)
自动化运营周报小工具说明:
第一步:对exe程序进行反编译[1]
第二步:进入新获得的extracted文件夹
第三步:查看struct.pyc和main.pyc前8字节之间的区别
第一个软件前个字节,第二个软件只有前8个字节相同,不知道为啥,不过我这里并未处理
第四步:反编译pyc文件得到python源代码
第五步:欣赏一下反编译的怎么找编程源码代码
非常遗憾,暂时只能看到主函数,看不到最核心的my_core函数,不知道咋弄
中秋节代码祝福语
中秋节代码祝福语需要使用Pyehon的datetime模块。在Python中,我们可以使用datetime模块来处理日期和时间。下面是一段代码示例:
importdatetime
now=datetime.datetime.now()
print("中秋节快乐!现在是:"+str(now))。
当我们运行这段代码时,会输出当前日期和时间:
中秋节快乐!现在是:--::.。
我们可以将其封装成一个函数:
defmid_autumn_greeting():
now=datetime.datetime.now()
return"中秋节快乐!现在是:"+str(now)。
这时,我们只需要调用mid_autumn_greeting()函数就可以获得当前时间并输出中秋节祝福语了。
Pyehon语言特点
简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。
易学:Python极其容易上手,因为Python有极其简单的说明文档。
易读、易维护:风格清晰划一、强制缩进。
速度较快:Python的底层是用C语言写的,很多标准库和第三方库也都是用C写的,运行速度非常快。
免费、开源:Python是gsd文件解析源码FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
逆向pyinstaller打包的exe软件,获取python源码(3)
年,我开发了第三个安全运营小工具,这个工具是为安全驻场人员设计的。本来打算将其与第一个软件整合,但由于时间限制未能实现。当时过于急于求成,没有深入分析代码。然而,最近的一次威胁狩猎事件激发了我对逆向工程的兴趣,我顺便尝试了逆向pyinstaller打包的exe软件,以获取python源码。回顾过去的代码,转眼已到年。我一直从事网络安全业务,但在coding技术上却毫无进步。今年,我决心提升代码水平,争取创造出有差异性的成果。
提醒:故事还有后续,我将逆向pyinstaller打包的exe软件的所有源代码:ailx:逆向pyinstaller打包的exe软件,获取python源码(6)
态势感知体检小工具说明:
第一步:对exe程序进行反编译[1]
第二步:进入新获得的墨香源码属性点extracted文件夹
第三步:查看struct.pyc和main.pyc前4字节之间的区别
第一个软件前个字节,第二个软件只有前8个字节相同,第三个软件只有前4个字节相同,不知道为什么,但我在这里并未发现任何问题。
第四步:反编译pyc文件得到python源代码
第五步:欣赏一下反编译的代码
十款代码表白特效,一个比一个浪漫 -- :·Java码农之路
提到程序员,人们常常会联想到“直男、宅、不懂浪漫、枯燥、憨厚老实、有逻辑、人傻钱多”等标签。然而,这种刻板印象并不全面,实际上,程序猿在面对感情时也能展现出浪漫的一面。他们大部分时间与电脑为伴,这份认真与专注也体现在了对待爱情的态度上。程序猿也许在生活中较为内敛,但这不代表他们不懂浪漫。当他们察觉到伴侣的不开心时,会利用编程技能,制作出如玫瑰花、心形等告白小程序,为对方制造惊喜。 接下来,酷动网络源码让我们看看程序猿如何通过代码表白,收获爱情。制图表白
制作图形表白是程序猿表达情感的创意方式之一。例如,通过代码生成一朵玫瑰花或一个爱心图案,既简洁又富有创意。 1.1 玫瑰花 源码如下: 1.2 爱心 源码如下: 1.3 网页爱心树表白 代码过长,仅展示部分代码:程序语言表白
程序猿不仅在图形上施展创意,也能够通过编程语言来表达心意。以下是几种基于程序语言的表白方式: 2.1 程序语言表白一 通过编写特定的程序代码,以有趣的互动方式表达情感。 2.2 程序语言表白二 利用编程语言特性,实现简单的自动化操作,如定时发送情书或提醒。 2.3 程序语言表白三 编写一段小程序,展示对方名字的ASCII艺术,增加个性化与趣味性。 2.4 程序语言表白四 利用编程语言的可视化功能,制作动态图形或动画,以独特的方式呈现心意。 编程表白不仅展现了程序猿的技术实力,也彰显了他们对感情的用心与创意。通过这些独特的表达方式,程序猿们成功地赢得了伴侣的芳心,证明了在感情的世界里,技术同样可以成为情感的桥梁。源码资本:一场自我迭代的持续升级
源码资本,作为中国新一代VC的佼佼者,其自我迭代的持续升级再次引起了业界关注。源码资本将种子期投资业务独立,新设“源码一粟”,标志着种子轮投资业务独立运营,由张星辰带领的专业团队,以“投人”理念和决策机制,支持科技创业者的从0到1过程。
“源码一粟”之名,寓意在科技海洋中独树一帜。张星辰,源码资本的创始人之一,见证了源码资本的8年成长,如今独当一面,标志着新的开始与成长的反哺。曹毅,源码资本的创始人,被称为“最像沈南鹏的后VC”,他在清华大学计算机系的求学经历,对创业的热情以及在新经济企业的创业经历,为源码资本的崛起奠定了坚实的基础。
源码资本不仅在中国创投市场中建立了强大的影响力,其双币市场策略更是其成功的关键。源码资本以美元基金起步,而后迅速发展了人民币基金,成功完成了五期人民币基金的募集,募资规模超过亿元。源码资本在LP的选择上,注重引入有判断力和行动力的新兴力量,包括互联网上市公司、A股上市公司、顶级母基金、大型央企等,以及金融机构。源码资本的资产管理规模达到亿人民币,成为了VC2.0时代的代表基金。
曹毅强调,源码资本将持续“投早、投小、投科技”,推动科技创新、产业数字化、人工智能、机器人、先进制造、碳中和等领域的发展。源码资本的组织力强大,已从最初的“短、平、快”转变为有组织、有规模、有策略的集团式运作。源码资本注重投后服务,与创业者保持紧密关系,提供体系化的投后支持,成为创业路上的长期合作伙伴。
源码资本在过去五年中,通过探索智能组织的建设,实现传感、计算、执行的有机协作,并不断进化。源码资本的业绩斐然,截至年,有两家成员企业估值超过亿美元,三家估值超过亿美元,多家估值超过亿美元,8家企业实现IPO,为投资人贡献了超过亿元的回报。
源码资本将继续聚焦于中国的创业创新土壤,投早、投小、投科技驱动,不断定义“现在的边缘、未来的主流”赛道,发掘最优秀创业者,持续提供有价值的帮助,创造持久真实价值,与创业企业一同成长。
Gitea源码分析(一)
Gitea是一个基于Go编写的Git代码托管工具,源自于gogs项目,具有良好的后端框架和前端集成。
前端框架采用Fomantic UI和Vue,路由控制器框架在年4月从macaron切换到chi,形成了gitea项目的结构基础。
在调用接口时,gitea引入了'User','Repo','Org'等内容,简化了接口调用,便于管理。'ctx.User'和'ctx.Repo'内容动态变化,需要用户登录和进入仓库时赋值。
在'routers'下,'handler'相关文件分为'get'和'post'两类,前者涉及前端渲染,后者负责执行操作。
'get'请求通过'templates'中的文件渲染到前端,通过'ctx.Data["name"]'传递需要渲染的数据,获取URL参数使用'c.Query'。
'post'请求接收前端数据,通常通过'form'传值,从'context'生成,可以使用'form.xxx'直接调用,添加内容则需在'form'结构体中定义。
渲染生成网页使用'ctx.Html(,tplName)',根据'context'内容做条件判断。
权限管理功能实现中,数字越大权限越高,便于后续对比。'UnitType'包含多项,如仓库页面导航栏显示。检查权限时,对比AccessModeRead和模块权限,大于则认为具有读权限。
gitea默认运行于单一服务器,伸缩性有限。若需分布式改造,需解决大规模并发访问、存储库分片和数据库支撑等问题。通过ELB负载均衡分散到多个节点,数据库使用集群方案,但存储库分片面临巨大挑战,现有技术难以实现。
官方文档提供了其他开源库的介绍,包括配置文件、容器方式下的轻量仓库与CI使用方案等。深入研究可发现Gitea的配置、路由控制框架chi、权限管理实现及分布式架构改造思路。
2024-11-30 06:53
2024-11-30 06:44
2024-11-30 06:41
2024-11-30 06:22
2024-11-30 06:16
2024-11-30 05:30