-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
678 lines (499 loc) · 26.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
<!DOCTYPE html>
<!--[if lte IE 8 ]>
<html class="ie" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<![endif]-->
<!--[if (gte IE 9)|!(IE)]><!-->
<!--
*************** * * *
8 * * *
8 * * *
8 ** *
8 * * *
8 * * *
8 * * *
8 * * *********** -----Theme By Kieran(http://go.kieran.top)
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<!--<![endif]-->
<head>
<title>Niko's BLOG</title>
<!-- Meta data -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" >
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="generator" content="Niko's BLOG">
<meta name="author" content="N1ko">
<meta name="description" content="" />
<meta name="keywords" content="逆向,程序分析,漏洞挖掘" />
<!-- Favicon, (keep icon in root folder) -->
<link rel="Shortcut Icon" href="/img/favicon.ico" type="image/ico">
<link rel="alternate" href="/atom.xml" title="Niko's BLOG" type="application/atom+xml">
<link rel="stylesheet" href="/css/all.css" media="screen" type="text/css">
<link rel="stylesheet" href="/highlightjs/vs.css" type="text/css">
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="/css/ie8.css" />
<![endif]-->
<!-- jQuery | Load our jQuery, with an alternative source fallback to a local version if request is unavailable -->
<script src="/js/jquery-1.11.1.min.js"></script>
<script>window.jQuery || document.write('<script src="js/jquery-1.11.1.min.js"><\/script>')</script>
<!-- Load these in the <head> for quicker IE8+ load times -->
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="/js/html5shiv.min.js"></script>
<script src="/js/respond.min.js"></script>
<![endif]-->
<style>.col-md-8.col-md-offset-2.opening-statement img{display:none;}</style>
</head>
<!--
<body class="home-template">
-->
<body id="index" class="lightnav animsition">
<!-- ============================ Off-canvas navigation =========================== -->
<div class="sb-slidebar sb-right sb-style-overlay sb-momentum-scrolling">
<div class="sb-close" aria-label="Close Menu" aria-hidden="true">
<img src="/img/close.png" alt="Close"/>
</div>
<!-- Lists in Slidebars -->
<ul class="sb-menu">
<li><a href="/" class="animsition-link" title="Home">Home</a></li>
<li><a href="/archives" class="animsition-link" title="archive">archives</a></li>
<!-- Dropdown Menu -->
<li>
<a class="sb-toggle-submenu">Categories<span class="sb-caret"></span></a>
<ul class="sb-submenu">
<li><a href="/categories/Android/" class="animsition-link">Android<small>(7)</small></a></li>
<li><a href="/categories/Browser/" class="animsition-link">Browser<small>(1)</small></a></li>
<li><a href="/categories/DBI/" class="animsition-link">DBI<small>(1)</small></a></li>
<li><a href="/categories/Linux/" class="animsition-link">Linux<small>(1)</small></a></li>
<li><a href="/categories/learn/" class="animsition-link">learn<small>(1)</small></a></li>
<li><a href="/categories/tools/" class="animsition-link">tools<small>(4)</small></a></li>
<li><a href="/categories/游戏/" class="animsition-link">游戏<small>(1)</small></a></li>
<li><a href="/categories/论文/" class="animsition-link">论文<small>(1)</small></a></li>
<li><a href="/categories/逆向/" class="animsition-link">逆向<small>(2)</small></a></li>
</ul>
</li>
<li>
<a class="sb-toggle-submenu">Links<span class="sb-caret"></span></a>
<ul class="sb-submenu">
<li><a target="_blank" rel="noopener" href="http://go.kieran.top/" class="animsition-link">Kieran</a></li>
</ul>
</li>
</ul>
<!-- Lists in Slidebars -->
<ul class="sb-menu secondary">
<li><a href="/about/index.html" class="animsition-link" title="about">About</a></li>
<li><a href="/atom.xml" class="animsition-link" title="rss">RSS</a></li>
</ul>
</div>
<!-- ============================ END Off-canvas navigation =========================== -->
<!-- ============================ #sb-site Main Page Wrapper =========================== -->
<div id="sb-site">
<!-- #sb-site - All page content should be contained within this id, except the off-canvas navigation itself -->
<!-- ============================ Header & Logo bar =========================== -->
<div id="navigation" class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<!-- Nav logo -->
<div class="logo">
<a href="/" title="Logo" class="animsition-link">
<img src="/img/logo.png" alt="Logo" width="35px;"/>
</a>
</div>
<!-- // Nav logo -->
<!-- Info-bar -->
<nav>
<ul class="nav">
<li><a href="/" class="animsition-link">Niko's BLOG</a></li>
<li class="nolink"><span>Always </span>Creative.</li>
<li><a href="https://github.com/tinyniko" title="Github" target="_blank"><i class="icon-github"></i></a></li>
<li><a href="https://twitter.com/nikos233__" title="Twitter" target="_blank"><i class="icon-twitter"></i></a></li>
<li class="nolink"><span>Welcome!</span></li>
</ul>
</nav>
<!--// Info-bar -->
</div>
<!-- // .container -->
<div class="learnmore sb-toggle-right">More</div>
<button type="button" class="navbar-toggle menu-icon sb-toggle-right" title="More">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar before"></span>
<span class="icon-bar main"></span>
<span class="icon-bar after"></span>
</button>
</div>
<!-- // .navbar-inner -->
</div>
<!-- ============================ Header & Logo bar =========================== -->
<!-- ============================ Hero Image =========================== -->
<section id="hero" class="scrollme">
<div class="container-fluid element-img" style="background: url(/img/bg_img.jpg) no-repeat center center fixed;background-size: cover">
<div class="row">
<div class="col-xs-12 col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2 vertical-align cover boost text-center">
<div class="center-me animateme" data-when="exit" data-from="0" data-to="0.6" data-opacity="0" data-translatey="100">
<div>
<h2>YOU'VE MADE A <span>BRAVE</span> DECISION, WELCOME.</h2>
<p></p>
<h2></h2>
<p>每一个不曾起舞的日子都是对生命的辜负。</p>
</div>
</div>
</div>
<!-- // .col-md-12 -->
</div>
<div class="herofade beige-dk"></div>
</div>
</section>
<!-- Height spacing helper -->
<div class="heightblock"></div>
<!-- // End height spacing helper -->
<!-- ============================ END Hero Image =========================== -->
<!-- ============================ Content =========================== -->
<section id="intro">
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2023/12/31/Ghidra11-0-更新简介/">Ghidra11.0 更新简介</a></h3>
<span>
<span class="post-meta">
<time datetime="2023-12-31T13:20:24.000Z" itemprop="datePublished">
2023-12-31
</time>
|
<a href='/tags/逆向/'>逆向</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
瞎扯淡又到年底了, 祝各位大佬新年快乐。本期就讲一讲 Ghidra 11.0 版本的更新。
更新简介英文版更新可以点击这里
大的更新就2个点,一个是 BSim 和 GhidraGo。
BSim 是基于Ghidra 反编译器做的一个函数相似度匹配能力。 咋一看, 我还以为又搞了一个 VersionTracking 出。它可以比较本地文件间的相似度, 也可以比较远程服务器中的文件。 相似度比较这块我用的比较少,暂时也没法评价他的优劣。
Gh
</p>
<p class="pull-right readMore">
<a href="/2023/12/31/Ghidra11-0-更新简介/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2023/12/24/聊一聊我大学时期做过的兼职/">聊一聊我大学时期做过的兼职</a></h3>
<span>
<span class="post-meta">
<time datetime="2023-12-24T07:49:04.000Z" itemprop="datePublished">
2023-12-24
</time>
|
<a href='/tags/生活/'>生活</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
看了《我在北京送快递》这本书, 忽然也想起了我大学时做的各种兼职, 记录一下。
起因为什么要做兼职? 具体的原因我已经想不起来了,但是有一定肯定是记得的,那就是没有钱,而兼职是钱的来源之一。受限于当时的认知吧, 只知道兼职可以赚到钱,所以在大一大二那段时间做了一些兼职。那个时候学业相对比较空, 课程也不算太难,再加上大一上不允许带电脑, 所以时间是挺多的。
兼职是通过中介找的,中介的意思是可以选择帮找一年,或者4年吧,收的钱不一样。当时
</p>
<p class="pull-right readMore">
<a href="/2023/12/24/聊一聊我大学时期做过的兼职/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2023/06/14/frida-hook-检测简介/">frida hook 检测简介</a></h3>
<span>
<span class="post-meta">
<time datetime="2023-06-14T12:35:01.000Z" itemprop="datePublished">
2023-06-14
</time>
|
<a href='/tags/逆向/'>逆向</a>,
<a href='/tags/hook/'>hook</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
背景最近分析了一个 app,有 frida 检测,一旦 attach 之后,app 就退出了。过去分析的一些 app,通常都有 frida 的检测,但不会这么暴力的退出。 于是我就分析了一下这个 app 的检测逻辑。基于此,我把市面上常见的一些 frida 检测逻辑都整理了一下。
检测方法frida 的检测可以分为两种, 一种检测frida-server 是否运行, 一种检测frida 是否已经注入到程序中。
检测frida-serve
</p>
<p class="pull-right readMore">
<a href="/2023/06/14/frida-hook-检测简介/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2022/07/17/记录一次ios-vmp-分析/">记录一次ios vmp 分析</a></h3>
<span>
<span class="post-meta">
<time datetime="2022-07-17T06:55:35.000Z" itemprop="datePublished">
2022-07-17
</time>
|
<a href='/tags/逆向/'>逆向</a>,
<a href='/tags/算法/'>算法</a>,
<a href='/tags/VMP/'>VMP</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
背景之前研究过某个 android app 的 vmp,通过模拟执行成功把里面的算法破解了。 ios 版本的 vmp 一直没有破解,原因在于 vmp init 阶段符号找不到,我想排查问题,但海量的日志让我难以分析,所以就放弃模拟执行这条路了。app 本身有反调试,当时也没仔细去研究,所以就无法调试。 由于不知道 vmp 解释器在哪, 我采用 ghidra 指令匹配收集了一堆可能是 instruction handler的点, 但fri
</p>
<p class="pull-right readMore">
<a href="/2022/07/17/记录一次ios-vmp-分析/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2022/07/16/白盒AES破解案例/">白盒AES破解案例</a></h3>
<span>
<span class="post-meta">
<time datetime="2022-07-16T13:57:11.000Z" itemprop="datePublished">
2022-07-16
</time>
|
<a href='/tags/逆向/'>逆向</a>,
<a href='/tags/算法/'>算法</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
背景去年遇到一个 js 版本的 aes加密算法,这个算法有一个巨大的表(4* 256), 基本可以断定是一个白盒aes 算法了, 然后我手工使用 DFA,发现并不能将白盒 aes 的密钥还原,由于当时还原 key 并不是一个强需求,所以在尝试了两次之后我就放弃了。 今年机缘巧合,为了排查线上的问题数据,需要对数据解密,还原key就变成了强需求。我本身是不太想搞的,感觉会投入很多时间并且最终还没有分析出来,但本着事不过三的原则,我还是决定
</p>
<p class="pull-right readMore">
<a href="/2022/07/16/白盒AES破解案例/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2022/05/29/mac-微信小程序解密/">mac 微信小程序解密</a></h3>
<span>
<span class="post-meta">
<time datetime="2022-05-29T06:25:04.000Z" itemprop="datePublished">
2022-05-29
</time>
|
<a href='/tags/开发/'>开发</a>,
<a href='/tags/逆向/'>逆向</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
0x01 前言以前分析微信小程序,都是通过移动端获取wxapkg之后,使用解包工具解包的, 现在pc/mac都已经支持小程序了,所以移动端的操作就多少有些麻烦了。网上找了一圈,我发现pc的包跟移动端的包不太一样,根据pc_wxapkg_decrypt 可以知道,在pc端,文件是被加密了,并且现在新版本可能就不支持了。而我使用的mac端,目前并没有解密工具,所以我只能自己想办法解密了。
逆向过程打开微信的包, 可以发现微信有两个程序,一个
</p>
<p class="pull-right readMore">
<a href="/2022/05/29/mac-微信小程序解密/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2022/02/13/CVE-2021-4034-pkexec本地提权漏洞复现与原理分析/">CVE-2021-4034 pkexec本地提权漏洞复现与原理分析</a></h3>
<span>
<span class="post-meta">
<time datetime="2022-02-13T06:19:19.000Z" itemprop="datePublished">
2022-02-13
</time>
|
<a href='/tags/exploit/'>exploit</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
这篇文章主要是看看雪上的一篇分析文章之后写的,部分内容从文章中拷贝, 文章链接在这里
漏洞原理 漏洞的原理很简单, 对于命令行程序,通常会有参数, 体现在代码中就是argc 和 argv, argc 代表参数个数,argv 是参数,默认情况下,argv[0]是当前程序的路径。当我们访问argv的偏移大于argc的时候,就会出现越界访问。所以,通常情况下都是先检查下argc个数,然后再去访问的,但是linux中挺多程序写法上有一定问题。这
</p>
<p class="pull-right readMore">
<a href="/2022/02/13/CVE-2021-4034-pkexec本地提权漏洞复现与原理分析/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2022/02/09/Ghidra-IDEA-开发环境配置/">Ghidra IDEA 开发环境配置 </a></h3>
<span>
<span class="post-meta">
<time datetime="2022-02-09T13:38:22.000Z" itemprop="datePublished">
2022-02-09
</time>
|
<a href='/tags/开发/'>开发</a>,
<a href='/tags/逆向/'>逆向</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
Ghidra 上脚本和扩展的开发都需要用到 Eclipse, 但 Eclipse 除了创建项目和调试的时候方便一点,开发体验却很糟糕。于是我就有了用 IDEA 替代 Eclipse 的想法,Ghidra 脚本支持 java 和 python2 开发, 我这里只讲 java 的配置。
使用 Ghidra 开发 Script首先,从github链接 中下载IDEA的插件, 这个插件应该只适用于社区版本的IDEA, 如果你用的是商业版, 则
</p>
<p class="pull-right readMore">
<a href="/2022/02/09/Ghidra-IDEA-开发环境配置/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2022/01/31/Unicorn-Engine-arm-编译/">Unicorn Engine arm 编译</a></h3>
<span>
<span class="post-meta">
<time datetime="2022-01-31T09:04:01.000Z" itemprop="datePublished">
2022-01-31
</time>
|
<a href='/tags/开发/'>开发</a>,
<a href='/tags/逆向/'>逆向</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
<p>Unicorn Engine 目前已经支持 arm 和 arm64的编译,但我在实际编译的时候,按官网的编译命令并没有成功,遂记录一下问题排查过程。</p>
</p>
<p class="pull-right readMore">
<a href="/2022/01/31/Unicorn-Engine-arm-编译/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<div class="row">
<div class="col-md-8 col-md-offset-2 opening-statement">
<div class="col-md-4">
<h3><a href="/2021/06/19/Plaid-CTF-2018-roll-a-d8/">Plaid CTF 2018 roll a d8</a></h3>
<span>
<span class="post-meta">
<time datetime="2021-06-19T11:22:02.000Z" itemprop="datePublished">
2021-06-19
</time>
|
<a href='/tags/exploit/'>exploit</a>,
<a href='/tags/ctf/'>ctf</a>,
<a href='/tags/Browser/'>Browser</a>
</span>
</span>
</div>
<div class="col-md-8">
<p>
前言这题是PCTF 2018 中的一道浏览器利用题。
漏洞分析存在漏洞的代码如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 void GenerateSetLength(TNode<Context> context, TNode<Object> array,
</p>
<p class="pull-right readMore">
<a href="/2021/06/19/Plaid-CTF-2018-roll-a-d8/">Read More...</a>
</p>
</div>
<div class="clearfix"></div>
<hr class="nogutter">
</div>
</div>
<nav class="pagination" role="pagination">
<a class="pull-right" href="/page/2/">Older Posts →</a>
</nav>
</div>
</section>
<section id="statement">
<div class="container text-center wow fadeInUp" data-wow-delay="0.5s">
<div class="row">
<p>虽然还没想好写点什么,但是总觉得这里放句话比较和谐。</p>
</div>
</div>
</section>
<!-- ============================ END Content =========================== -->
<!-- ============================ Footer =========================== -->
<footer>
<div class="container">
<div class="copy">
<p>
© 2014<script>new Date().getFullYear()>2010&&document.write("-"+new Date().getFullYear());</script>, Content By N1ko. All Rights Reserved.
</p>
<p>Theme By <a target="_blank" rel="noopener" href="//go.kieran.top" style="color: #767D84">Kieran</a></p>
</div>
<div class="social">
<ul>
<li><a href="https://github.com/tinyniko" title="Github" target="_blank"><i class="icon-github"></i></a> </li>
<li><a href="https://twitter.com/nikos233__" title="Twitter" target="_blank"><i class="icon-twitter"></i></a> </li>
</ul>
</div>
<div class="clearfix"> </div>
</div>
</footer>
<!-- ============================ END Footer =========================== -->
<!-- Load our scripts -->
<!-- Resizable 'on-demand' full-height hero -->
<script type="text/javascript">
var resizeHero = function () {
var hero = $(".cover,.heightblock"),
window1 = $(window);
hero.css({
"height": window1.height()
});
};
resizeHero();
$(window).resize(function () {
resizeHero();
});
</script>
<script src="/js/plugins.min.js"></script><!-- Bootstrap core and concatenated plugins always load here -->
<script src="/js/scripts.js"></script><!-- Theme scripts -->
<link rel="stylesheet" href="/fancybox/jquery.fancybox.css" media="screen" type="text/css">
<script src="/fancybox/jquery.fancybox.pack.js"></script>
<script type="text/javascript">
$('#intro').find('img').each(function(){
var alt = this.alt;
if (alt){
$(this).after('<span class="caption" style="display:none">' + alt + '</span>');
}
$(this).wrap('<a href="' + this.src + '" title="' + alt + '" class="fancybox" rel="gallery" />');
});
(function($){
$('.fancybox').fancybox();
})(jQuery);
</script>
</body>
</html>