[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
|
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
1001-
1101-
1201-
1301-
1401-
1501-
1601-
1701-
1801-
1901-
2001-
2101-
2201-
2301-
2401-
2501-
2601-
2701-
2801-
2901-
3001-
3101-
3201-
3301-
3401-
3501-
3601-
3701-
3801-
3901-
4001-
4101-
4201-
4301-
4401-
4501-
4601-
4701-
4801-
4901-
5001-
5101-
5201-
5301-
5401-
この機能を使うにはJavaScriptを有効にしてください
|
管理人の独り言(プログラミング関連)
1
:
みみず★
:2008/08/10(日) 23:28:15
あまりにもプログラミングの内容が増えすぎた。
よって隔離スレの中を更に隔離。
1073
:
774さん
:2008/12/11(木) 21:12:12 ID:CENbthlg0
Native Clientの仕組みはどうなっているのか? - やねうらお−よっちゃんイカはしばらく買わずにiPhoneだけに注力する男
http://d.hatena.ne.jp/yaneurao/20081211
#p1
Native Client必死こいて訳した1 - Yet Another Ranha
http://d.hatena.ne.jp/ranha/20081210/1228889363
jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ
http://d.hatena.ne.jp/nitoyon/20081211/jquery_fast_css
1074
:
774さん
:2008/12/12(金) 19:02:42 ID:CENbthlg0
JOI 2006 予選 問題4
http://www.ioi-jp.org/joi/2005/2006-yo-prob_and_sol/2006-yo-t4.html
-----
こういう問題だけは出るな・・・
1075
:
774さん
:2008/12/12(金) 19:04:12 ID:CENbthlg0
Win32::GuiTest で Windows の GUI アプリをハックしよう
http://perl-users.jp/articles/advent-calendar/2008/13.html
.htaccessで使える16の技:phpspot開発日誌
http://phpspot.org/blog/archives/2008/12/htaccess16.html
1076
:
774さん
:2008/12/12(金) 20:09:16 ID:CENbthlg0
>>1074
問題読んでいなかったらミスったwwwwwwwwww
1077
:
774さん
:2008/12/12(金) 20:16:30 ID:CENbthlg0
二つ横に移動させるときに一回動かして、チェックしてもう一回(ry
見たいなことをやれば良いんだ!
1078
:
774さん
:2008/12/12(金) 20:21:43 ID:CENbthlg0
でも改造するの面倒です。
1079
:
774さん
:2008/12/12(金) 20:22:08 ID:CENbthlg0
まあ、明後日の方向に向かって頑張ろう(意味不明
1080
:
774さん
:2008/12/12(金) 20:58:43 ID:CENbthlg0
Sleipnirの更新始まったな。
まあ、Sleipnir自体はまだ始まってないんだけれども。
1081
:
774さん
:2008/12/12(金) 21:50:18 ID:CENbthlg0
だみー
http://extensions.tabbrowser.jp/labs/yasuyuki/dummy.html
-----
1082
:
774さん
:2008/12/12(金) 22:10:57 ID:CENbthlg0
こんなスクリプト作っておけば楽でしょ。
-----
for(my $i = 1; $i <= 5; ++$i){
`test_test < $i > out$i.txt`
}
1083
:
774さん
:2008/12/12(金) 22:11:37 ID:CENbthlg0
後はリダイレクトの内側のファイル名を弄くれば良い。
1084
:
774さん
:2008/12/12(金) 22:17:57 ID:CENbthlg0
落とした資料ならばおkらしいので、STLの解説を落とした。
1085
:
774さん
:2008/12/12(金) 22:25:51 ID:CENbthlg0
取り敢えず、このコンテストが終わったら、本格的に勉強する。
流石に偏差値29.5は無いわwwww
1086
:
774さん
:2008/12/12(金) 22:41:01 ID:CENbthlg0
取り敢えず、本選出場が最低ラインの方向で。
まあ、いけるか分からんがwwwwwwwwwwwwwwwwww
1087
:
774さん
:2008/12/13(土) 18:53:02 ID:CENbthlg0
JOI2006予選 問題4@C++(-66) - 簡潔で覚えやすいタイトルを3秒で思いつく程度の能力
http://d.hatena.ne.jp/qnighy/20081024/1224856862
-----
今見ると、単純な再帰的なプログラムである。
1088
:
774さん
:2008/12/13(土) 19:26:40 ID:CENbthlg0
明日の問題で、変な問題が出ませんように。
1089
:
774さん
:2008/12/14(日) 12:00:07 ID:CENbthlg0
一時間も前からログインしている俺は変な人である。
1090
:
774さん
:2008/12/14(日) 12:01:59 ID:CENbthlg0
問題まだー
1091
:
774さん
:2008/12/14(日) 12:32:58 ID:CENbthlg0
コマンドプロンプトで上を押すと、以前実行したコマンドが入力される。
これは滅茶苦茶使えるwww
1092
:
774さん
:2008/12/14(日) 12:51:01 ID:CENbthlg0
という事で、コマンドプロンプト+Visual C+++perlでいく。
1093
:
774さん
:2008/12/14(日) 12:51:55 ID:CENbthlg0
ちゃんと、テスト用のデータは用意されているのかな?
無かったら困るしwww
まあ、自分で作れば良いのだが。
1094
:
774さん
:2008/12/14(日) 12:56:23 ID:CENbthlg0
そろそろか・・・
1095
:
774さん
:2008/12/14(日) 12:57:04 ID:CENbthlg0
後三分も無いぜ!
1096
:
774さん
:2008/12/14(日) 12:57:27 ID:CENbthlg0
では、そろそろ頑張ってきます
ノシ
1097
:
774さん
:2008/12/14(日) 12:58:59 ID:CENbthlg0
誰も見ていないだろうが・・・
頑張ろう俺!
1098
:
774さん
:2008/12/14(日) 16:00:27 ID:CENbthlg0
俺にはむずかしすぎたようです
1099
:
774さん
:2008/12/14(日) 19:40:26 ID:CENbthlg0
たぶんおちたとおもふ。
まあいいや。どうせおれのじつりょくなんて・・・
1100
:
774さん
:2008/12/14(日) 20:36:07 ID:CENbthlg0
GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)
http://wiki.livedoor.jp/author_nari/d/
1101
:
774さん
:2008/12/15(月) 19:02:45 ID:CENbthlg0
絶対、Sleipnirはタブが全部閉じたらSleipnirも終了するという仕様にするなよ!
するなら、するほうを隠し設定にするんだぞ!絶対標準にするなよ!
1102
:
774さん
:2008/12/15(月) 19:09:31 ID:CENbthlg0
Ruby使わないのにRuby入れた。
1103
:
774さん
:2008/12/15(月) 23:09:08 ID:CENbthlg0
アセンブリで、memset書いてみた。
-----
memset:
mov edi, dword [esp + 4]
mov ebx, dword [esp + 8]
mov ecx, dword [esp + 0Ch]
and ebx, 000000FFh
xor eax, eax
or eax, ebx
shl ebx, 8
or eax, ebx
mov ebx, eax
shl ebx, 10h
or eax, ebx
mov ebx, ecx
and ebx, 00000003h
shr ecx, 2
rep stosd
mov ecx, ebx
retp stosb
xor eax, eax
ret
1104
:
774さん
:2008/12/15(月) 23:25:41 ID:CENbthlg0
retpじゃなくてrepですね。
1105
:
774さん
:2008/12/16(火) 00:33:10 ID:CENbthlg0
IE6で閲覧すると。|CSS HappyLife
http://css-happylife.com/log/zakki/000736.shtml
-----
これはwwwwwwwwwwwww
1106
:
774さん
:2008/12/16(火) 00:41:15 ID:CENbthlg0
米 Yahoo! が SQL っぽく色んなデータを取ってこれるAPIを出した - てっく煮ブログ
http://d.hatena.ne.jp/nitoyon/20081215/yql_review
1107
:
774さん
:2008/12/16(火) 19:30:04 ID:CENbthlg0
突如多発したWebページ改ざん狙いは明らかに日本:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20081209/320992/
1108
:
774さん
:2008/12/16(火) 19:53:41 ID:CENbthlg0
jQueryを使うときに気をつけるべき8のポイント : tech.kayac.com - KAYAC engineers' blog
http://tech.kayac.com/archive/jquery-checkpoints.html
IPv6 とかよくわからない人間が IPv6 対応サイトを作る際の知っておくべき 8 つの注意点 - にぽたん研究所
http://blog.livedoor.jp/nipotan/archives/51195204.html
HTTP Status Code
http://status-code.com/
1109
:
774さん
:2008/12/16(火) 20:44:01 ID:CENbthlg0
IPv4で規制中に書き込むスレッド
http://ipv6.2ch.net/test/read.cgi/ipv6/1222776717/14-15n
IPv4で規制中に書き込むスレッド
http://ipv6.2ch.net/test/read.cgi/ipv6/1222776717/
----
同じスレですね。はい。
勉強になる。
1110
:
774さん
:2008/12/17(水) 18:31:25 ID:CENbthlg0
Get faster Gmail with a faster browser - Help Center
http://mail.google.com/support/bin/answer.py?&answer=107906&hl=en
-----
wwwwwwwwwwwwwwwwwwwwwwww
1111
:
774さん
:2008/12/17(水) 20:19:47 ID:CENbthlg0
うーん。
頑張って他のexeに.textセクションだけでも紛れさせれないか頑張っているのだが・・・
1112
:
774さん
:2008/12/17(水) 22:29:37 ID:CENbthlg0
std::priority_queue<pair<DWORD, IMAGE_SECTION_HEADER *>, vector<pair<DWORD, IMAGE_SECTION_HEADER *> >, std::greater<vector<pair<DWORD, IMAGE_SECTION_HEADER *> >::value_type > >
これは酷い型宣言。
1113
:
774さん
:2008/12/17(水) 22:31:22 ID:CENbthlg0
正確にはこうだな
std::priority_queue<std::pair<DWORD, IMAGE_SECTION_HEADER *>, std::vector<std::pair<DWORD, IMAGE_SECTION_HEADER *> >, std::greater<std::vector<std::pair<DWORD, IMAGE_SECTION_HEADER *> >::value_type > > q;
1114
:
774さん
:2008/12/17(水) 23:40:46 ID:CENbthlg0
しょぼーん。
頑張って書いたのに、意味なかった。
今までの四時間を返せ!
1115
:
774さん
:2008/12/17(水) 23:41:29 ID:CENbthlg0
#include <iostream>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <functional>
#include <windows.h>
#include <tchar.h>
#if defined(UNICODE) || defined(_UNICODE)
#error UNICODE版はサポートしてないみたいです。
#endif
#if defined(_WIN64)
#error 64bit版はサポートしてないみたいです。
#endif
#define RVA(po, rva) \
((void *)(((BYTE *)(po)) + ((long)(rva))))
IMAGE_SECTION_HEADER *GetTextSection(IMAGE_SECTION_HEADER *section, WORD numOfSection){
for(int i = 0; i < numOfSection; ++i){
if(lstrcmpA((char *)section[i].Name, ".text") == 0){
return §ion[i];
}
}
return NULL;
}
1116
:
774さん
:2008/12/17(水) 23:42:02 ID:CENbthlg0
void Unko(void *src, void *des, DWORD srcSize, DWORD desSize){
IMAGE_DOS_HEADER *pSrcDosHeader = (IMAGE_DOS_HEADER *)src;
IMAGE_DOS_HEADER *pDesDosHeader = (IMAGE_DOS_HEADER *)des;
if(pSrcDosHeader->e_magic == IMAGE_DOS_SIGNATURE && pDesDosHeader->e_magic == IMAGE_DOS_SIGNATURE){
IMAGE_NT_HEADERS32 *pSrcNtHeader = (IMAGE_NT_HEADERS32 *)RVA(src, pSrcDosHeader->e_lfanew);
IMAGE_NT_HEADERS32 *pDesNtHeader = (IMAGE_NT_HEADERS32 *)RVA(des, pDesDosHeader->e_lfanew);
if(pSrcNtHeader->Signature == IMAGE_NT_SIGNATURE && pDesNtHeader->Signature == IMAGE_NT_SIGNATURE){
WORD srcNumberOfSections = pSrcNtHeader->FileHeader.NumberOfSections;
WORD desNumberOfSections = pDesNtHeader->FileHeader.NumberOfSections;
IMAGE_SECTION_HEADER *pSrcSections = IMAGE_FIRST_SECTION(pSrcNtHeader);
IMAGE_SECTION_HEADER *pDesSections = IMAGE_FIRST_SECTION(pDesNtHeader);
IMAGE_SECTION_HEADER *pSrcTextSection = GetTextSection(pSrcSections, srcNumberOfSections);
IMAGE_SECTION_HEADER *pDesTextSection = GetTextSection(pDesSections, desNumberOfSections);
if(pSrcTextSection && pDesTextSection){
//ソースの.textセクションの大きさ
DWORD srcTextSectionSize = pSrcTextSection->SizeOfRawData;
//挿入先の.textセクションのファイル上の大きさ
DWORD desTextSectionSize = pDesTextSection->SizeOfRawData;
//挿入先の.textセクションのメモリ上の大きさ
DWORD desTextSectionVirtualSize = pDesTextSection->Misc.VirtualSize;
//挿入先のセクションのアラインメントの大きさ
DWORD desSectionAlignment = pDesNtHeader->OptionalHeader.SectionAlignment;
//挿入先のセクションのファイル上のアラインメントの大きさ
DWORD desFileAlignment = pDesNtHeader->OptionalHeader.FileAlignment;
//挿入後の.textセクションのファイル上の大きさ(もっと良い求め方があったが、忘れた。)幾らか足しているのはアセンブリ用(下の方のcode分)
DWORD desAfterTextSectionSize = ((srcTextSectionSize + desTextSectionSize) + desFileAlignment - 1 + 10 /*アセンブリ分*/) / desFileAlignment * desFileAlignment;
//.textセクションのファイル上の増加量
DWORD desTextSectionAddition = desAfterTextSectionSize - desTextSectionSize;
//挿入後の.textセクションのメモリ上の大きさ?良く分からん。
//DWORD desAfterTextSectionVirtualSize = (desAfterTextSectionSize + desSectionAlignment - 1) / desSectionAlignment * desSectionAlignment;
DWORD desAfterTextSectionVirtualSize = desTextSectionVirtualSize + desTextSectionAddition;
//挿入後のexeの大きさ
SIZE_T fileSize
= desSize //元のファイルの大きさ
+ desTextSectionAddition //増えた.textセクションの大きさ
;
void *p = VirtualAlloc(NULL, fileSize, MEM_COMMIT, PAGE_READWRITE);
1117
:
774さん
:2008/12/17(水) 23:42:25 ID:CENbthlg0
if(p){
#define DESTOP(po) (void *)((long)(po) - (long)(des) + (long)(p))
memcpy(p, des, desSize);
//TODO
//.textセクションの挿入&エントリポイントの変更&アセンブリ(バイナリ)の挿入&情報の修正
IMAGE_NT_HEADERS32 *pImageNtHeader = (IMAGE_NT_HEADERS32 *)DESTOP(pDesNtHeader);
IMAGE_SECTION_HEADER *pImageSections = (IMAGE_SECTION_HEADER *)DESTOP(pDesSections);
IMAGE_SECTION_HEADER *pTextSection = (IMAGE_SECTION_HEADER *)DESTOP(pDesTextSection);
//.textセクションより後ろにあるものを移動&値変更
{
//.textセクションの開始位置(RVA)
DWORD pTextSectionPointerToRawData = pTextSection->PointerToRawData;
std::priority_queue<std::pair<DWORD, IMAGE_SECTION_HEADER *>, std::vector<std::pair<DWORD, IMAGE_SECTION_HEADER *> >, std::greater<std::vector<std::pair<DWORD, IMAGE_SECTION_HEADER *> >::value_type > > q;
for(int i = 0; i < desNumberOfSections; ++i){
if(pImageSections[i].PointerToRawData > pTextSectionPointerToRawData){
q.push(std::pair<DWORD, IMAGE_SECTION_HEADER *>(pImageSections[i].PointerToRawData, &pImageSections[i]));
pImageSections[i].PointerToRawData += desTextSectionAddition;
}
}
while(!q.empty()){
std::pair<DWORD, IMAGE_SECTION_HEADER *> &top = q.top();
void *sp = RVA(p, top.first);
memmove(RVA(sp, desTextSectionAddition), sp, top.second->SizeOfRawData);
q.pop();
}
}
//.textセクションを弄くる
{
void *sp = RVA(p, pTextSection->PointerToRawData);
memmove(RVA(sp, desTextSectionAddition), sp, pTextSection->SizeOfRawData);
static const BYTE code[] = {
0xE8, 0x00, 0x00, 0x00, 0x00, //CALL rel32
0xE9, 0x00, 0x00, 0x00, 0x00, //JMP rel32
};
memcpy(sp, code, sizeof(code));
memcpy(RVA(sp, sizeof(code)), RVA(src, pSrcTextSection->PointerToRawData), pSrcTextSection->SizeOfRawData);
//挿入元のEXEのエントリポイントの.textでの相対位置
DWORD srcEntryPoint = pSrcNtHeader->OptionalHeader.AddressOfEntryPoint - pSrcNtHeader->OptionalHeader.BaseOfCode;
//挿入先のEXEのエントリポイントの.textでの相対位置
DWORD desEntryPoint = pDesNtHeader->OptionalHeader.AddressOfEntryPoint - pDesNtHeader->OptionalHeader.BaseOfCode;
pImageNtHeader->OptionalHeader.AddressOfEntryPoint = pImageNtHeader->OptionalHeader.BaseOfCode;
*((DWORD *)RVA(sp, 1)) = sizeof(code) - 5 + srcEntryPoint;
*((DWORD *)RVA(sp, 6)) = desTextSectionAddition + desEntryPoint - 10;
}
//.textセクションの大きさの修正
{
pTextSection->SizeOfRawData = desAfterTextSectionSize;
pTextSection->Misc.VirtualSize = desAfterTextSectionVirtualSize;
}
FILE *filew = fopen("out.exe", "wb");
fwrite(p, fileSize, 1, filew);
VirtualFree(p, fileSize, MEM_DECOMMIT);
}
}
}
}
}
1118
:
774さん
:2008/12/17(水) 23:42:35 ID:CENbthlg0
int main(int argc, char **argv){
if(argc < 4){
std::cerr << "引数が少ないみたいです。" << std::endl;
std::cerr << "コマンド S D T" << std::endl;
return -1;
}
HANDLE hSrc = CreateFileA(argv[1], GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
HANDLE hDes = CreateFileA(argv[2], GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hSrc != INVALID_HANDLE_VALUE && hDes != INVALID_HANDLE_VALUE){
LARGE_INTEGER srcSize, desSize;
if(GetFileSizeEx(hSrc, &srcSize) && GetFileSizeEx(hDes, &desSize)){
std::cout << "FROM:" << srcSize.QuadPart << "bytes" << std::endl;
std::cout << " TO :" << desSize.QuadPart << "bytes" << std::endl;
//でかすぎるのはここで一応切っておく。これより小さくても本当はやめるべきだが。
if(!srcSize.HighPart && !desSize.HighPart){
HANDLE hSrcMap = CreateFileMappingA(hSrc, NULL, PAGE_READONLY, 0, 0, NULL);
HANDLE hDesMap = CreateFileMappingA(hDes, NULL, PAGE_READONLY, 0, 0, NULL);
if(hSrcMap && hDesMap){
void *pSrc = MapViewOfFile(hSrcMap, FILE_MAP_READ, 0, 0, 0);
void *pDes = MapViewOfFile(hDesMap, FILE_MAP_READ, 0, 0, 0);
if(pSrc && pDes){
Unko(pSrc, pDes, srcSize.LowPart, desSize.LowPart);
}
if(pSrc)
UnmapViewOfFile(pSrc);
if(pDes)
UnmapViewOfFile(pDes);
}
if(hSrcMap)
CloseHandle(hSrcMap);
if(hDesMap)
CloseHandle(hDesMap);
}
}
}
if(hSrc != INVALID_HANDLE_VALUE)
CloseHandle(hSrc);
if(hDes != INVALID_HANDLE_VALUE)
CloseHandle(hDes);
}
1119
:
774さん
:2008/12/17(水) 23:48:21 ID:CENbthlg0
>>1115-1118
http://mimizu.karou.jp/static/exeinjection.cpp
1120
:
774さん
:2008/12/17(水) 23:55:27 ID:CENbthlg0
これくらいincludeしておけば、間違えなく安心。
#include <iostream>
#include <vector>
#include <deque>
#include <queue>
#include <map>
#include <string>
#include <algorithm>
#include <functional>
#include <cstdio>
#include <cstdlib>
#include <climits>
#include <ctime>
int main(int argc, char **argv){
}
1121
:
774さん
:2008/12/18(木) 02:43:49 ID:CENbthlg0
>また、第8回日本情報オリンピック予選の結果通知は、12月23日(火)を予定しています。
落ちてるだろうがwktk
1122
:
774さん
:2008/12/18(木) 18:50:04 ID:CENbthlg0
jQueryを良くする25のTIPS[to-R]
http://blog.webcreativepark.net/2008/12/17-225630.html
1123
:
774さん
:2008/12/19(金) 17:10:52 ID:CENbthlg0
メニューの項目上で右クリックを出来るようにするっていうのは難しいのか?
1124
:
774さん
:2008/12/19(金) 18:22:05 ID:CENbthlg0
C#って凄く簡単にGUI作れるね!
1125
:
774さん
:2008/12/19(金) 18:57:45 ID:CENbthlg0
随分と前からgccを入れていたのだが、ようやく使ってみた。
物凄く簡単じゃんww
1126
:
774さん
:2008/12/19(金) 18:58:59 ID:CENbthlg0
PATH通した。
1127
:
774さん
:2008/12/19(金) 19:01:40 ID:CENbthlg0
MinGM(gcc)だとファイル名を指定しないとa.exe(a.out)が出力されるのが粋だよな。
1128
:
774さん
:2008/12/19(金) 19:40:42 ID:CENbthlg0
Windows の基本的なコマンド集 - IT戦記
http://d.hatena.ne.jp/amachang/20081219/1229674783
-----
Unixのほうがいいんじゃね?
1129
:
774さん
:2008/12/19(金) 20:00:59 ID:CENbthlg0
PowerShellを入れている。
1130
:
774さん
:2008/12/19(金) 20:04:43 ID:CENbthlg0
バージョン情報が2006だし。
けっこう古いな。
1131
:
774さん
:2008/12/19(金) 20:10:41 ID:CENbthlg0
GNU make 日本語訳(Coop編) - 目次
http://www.ecoop.net/coop/translated/GNUMake3.77/make_toc.jp.html
-----
そろそろmakefileの勉強ですか?
遅いですね。
1132
:
774さん
:2008/12/19(金) 20:59:33 ID:CENbthlg0
一個Sleipnir用のプラグインを思いついたけれども、正規の方法じゃ無理だなあ。
まあ、ただ単に他のウィンドウのEditボックスの内容をURLとして開くようなそんな機能。
1133
:
774さん
:2008/12/20(土) 17:04:11 ID:CENbthlg0
Firefoxで最後のタブを閉じても終了しないようにするには
browser.tabs.closeWindowWithLastTab
を
false
にすれば良いみたい。
1134
:
774さん
:2008/12/20(土) 19:27:19 ID:CENbthlg0
今更ながら、Script+EXEでSleipnirは全て弄くれることをおもいだした。
1135
:
774さん
:2008/12/21(日) 13:39:36 ID:CENbthlg0
ハードリンクとジャンクションを作れるようにしてやった。
1136
:
774さん
:2008/12/21(日) 17:51:35 ID:CENbthlg0
Sleipnirにコードを注入して、そこからスレッドを走らせるコードを書いたら全然うまくいかなかったわけだが、今漸く理由が分かった。
まず、VC++でDebugでビルドすると、関数ポインタが指している場所が、本体にジャンプする命令であるからである。
だからその周辺をコピーしてもコピーしていない場所にジャンプすることになってしまうので、落ちると。
次にコードを実行してからVirtualFreeExするのが早すぎることだ。
これでは、コピーされていても、コードを実行する前にメモリが開放されて実行できない。
まあ、それだけのことだった。
#include <iostream>
#include <vector>
#include <deque>
#include <queue>
#include <map>
#include <string>
#include <algorithm>
#include <functional>
#include <cstdio>
#include <cstdlib>
#include <climits>
#include <ctime>
#include <windows.h>
#if defined(UNICODE) || defined(_UNICODE)
#error UNICODE無理。
#endif
struct Stop{
~Stop(){
//#ifdef _DEBUG
std::cout << "Enterで終了します" << std::endl;
std::getline(std::cin, std::string());
//#endif
}
};
void __declspec(naked) WINAPI TestProc(void *p){
__asm{
mov eax, 0
ret 4
}
}
int main(int argc, char **argv){
Stop stop;
{
Stop stop;
}
//EnumWindows(Proc, 0);
std::cout << "-----------------------------" << std::endl;
std::cout << "argc = " << argc << std::endl;
for(int i = 0; i < argc; ++i){
std::cout << "第" << i << "引数:" << argv[i] << std::endl;
}
std::cout << "-----------------------------" << std::endl;
if(argc < 2){
#ifdef _DEBUG
argv[1] = new char[9];
sprintf(argv[1], "%x", (unsigned int)FindWindowA("SleipnirMainWindow", NULL));
//delete・・・
#else
std::cerr << "引数が足りません><" << std::endl;
return -1;
#endif
}
HWND hWnd = (HWND)std::strtoul(argv[1], NULL, 16);
DWORD PID;
GetWindowThreadProcessId(hWnd, &PID);
std::cout << "HWND of Sleipnir is " << hWnd << std::endl;
std::cout << "PID of Sleipnir is " << PID << std::endl;
HANDLE hProcess = OpenProcess(
PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_QUERY_INFORMATION,
FALSE,
PID
);
if(hProcess){
LPVOID p = VirtualAllocEx(hProcess, NULL, 0x00010000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
BYTE dummy[8];
WriteProcessMemory(hProcess, p, TestProc, 0x00000100, (SIZE_T *)dummy);
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)p, NULL, 0, (LPDWORD)dummy);
WaitForSingleObject(hThread, INFINITE);
VirtualFreeEx(hProcess, p, 0x00010000, MEM_DECOMMIT);
CloseHandle(hThread);
CloseHandle(hProcess);
}else{
std::cerr << "OpenProcess Error" << std::endl;
}
}
1137
:
774さん
:2008/12/21(日) 23:55:48 ID:CENbthlg0
キーロガーを書いている。
多分公開しない。
1138
:
774さん
:2008/12/21(日) 23:56:35 ID:CENbthlg0
マイクロソフト曰く、リスキーなことをやっているようだ。
1139
:
774さん
:2008/12/22(月) 17:49:53 ID:CENbthlg0
Lunascape5 beta来たねえ。
Acid3が100/100だってさ。
まあ、レンダリングエンジンは作ってないだろうから、ソース拾ってコンパイルして突っ込めばおkじゃね?
テスト版のtrunkビルドで良い感じかと。
Sleipnirおせえええええ。
1140
:
774さん
:2008/12/22(月) 18:02:05 ID:CENbthlg0
Windows Vista 搭載パソコンを買ってきてやったことまとめ - IT戦記
http://d.hatena.ne.jp/amachang/20081221/1229855379
1141
:
774さん
:2008/12/22(月) 18:43:56 ID:CENbthlg0
WebkitってAcid3通過してたよねーと思って調べたら予想通り。
-----
Webkit が acid3 test を pass!
http://d.hatena.ne.jp/amachang/20080327/1206607705
-----
こんなのもあった。
-----
WebKit 開発者の一部よ、恥を知れ! - Opera の非公開テストビルドと WebKit Nightly r31342 が Acid3 をクリア
http://end-of-file.net/blog/2008-03.html
#date-2008-03-27
-----
これは・・・
1142
:
774さん
:2008/12/22(月) 18:52:36 ID:CENbthlg0
でも次の読むと直っているらしい。
1143
:
774さん
:2008/12/22(月) 18:56:34 ID:CENbthlg0
Lunascape爆発しないかな?
1144
:
774さん
:2008/12/22(月) 21:01:01 ID:CENbthlg0
SVGをなぜか勉強中。
うまくやれば、Canvasよりも上手く描画できるかも?
1145
:
774さん
:2008/12/22(月) 21:04:34 ID:CENbthlg0
一番上の兄者、爆発しろ。
1146
:
774さん
:2008/12/23(火) 14:21:23 ID:CENbthlg0
完璧なソースだ・・・
我ながら感動。
1147
:
774さん
:2008/12/23(火) 14:27:49 ID:CENbthlg0
何やるって、hProcessさえ取得できれば、そのプロセスに独自のDLLをマッピングして、そのDLLの中の任意の関数を実行してしまうって言うプログラムである。
1148
:
774さん
:2008/12/23(火) 18:15:43 ID:CENbthlg0
予選通過したみたい。
だけれども67しかない・・・
80は行ったと思ったんだけれども・・・
1149
:
774さん
:2008/12/23(火) 18:26:42 ID:CENbthlg0
俺の結果----------
問題1(20,あり) 問題2(20,あり) 問題3(15,あり)
問題4(4,あり) 問題5(8,あり) 問題6(0,なし)
------------------
問題3が何故一問間違っているのかが訊きたい。
問題4が何故一問しか合ってないのか訊きたい。
まあ他は提出したのはあっているようだ。
1150
:
774さん
:2008/12/23(火) 22:52:19 ID:CENbthlg0
http://g.e-hentai.org/
目もメモ
1151
:
774さん
:2008/12/23(火) 23:08:26 ID:CENbthlg0
>>1150
UIに感動した。
レートされている量が、星の濃さで分かるというのは素晴らしいと思った。
1152
:
774さん
:2008/12/24(水) 13:16:30 ID:CENbthlg0
価格.com - SEAGATE ST31000333AS (1TB SATA300 7200) 価格比較
http://kakaku.com/item/05302015940/
-----
やすい・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
1153
:
774さん
:2008/12/25(木) 15:53:57 ID:CENbthlg0
この組み合わせが価格.com的に良い!
-----
価格.com - SEAGATE ST31000333AS (1TB SATA300 7200) 価格比較
http://kakaku.com/item/05302015940/
価格.com - COREGA CG-HDC2U3100 価格比較
http://kakaku.com/item/05391310834/
1154
:
774さん
:2008/12/26(金) 14:46:50 ID:CENbthlg0
Lunascape 5.0β、Acid3で100点満点を達成
http://slashdot.jp/it/08/12/24/1225220.shtml
---
>辛口で申しわけないが、WebKitが100点を出せたのであって,
>そのレンダリングエンジンをLunascapeが採用したにすぎない。
-----
コメント糞わらたwwwwwwwwwwwwwwwwwwwww
Lunascapeは初心者向けのようです。
1155
:
774さん
:2008/12/26(金) 18:10:15 ID:CENbthlg0
キーロガー難しい・・・
割り込み的な感じだから困る
1156
:
774さん
:2008/12/26(金) 18:53:36 ID:CENbthlg0
ちゃんと設計を考え直そう。
少なくとも一つはウィンドウを作る必要性はある。
で、もう一つスレッドを用意してそこで書き込みを行うようにするか。
そうすれば、スレッドセーフになる。
1157
:
774さん
:2008/12/26(金) 18:55:18 ID:CENbthlg0
取り敢えず、一度ウィンドウにSendMessageして、そのウィンドウからPostThreadMessageでスレッドにデータを送るようにしよう。
そうすれば、割り込みが行う処理は少なく出来る。
少なくとも、ハードディスクに書き込む時間の分短く出来る。
1158
:
774さん
:2008/12/26(金) 19:23:49 ID:CENbthlg0
無限ループはfor(;;)で統一しよう。
1159
:
774さん
:2008/12/26(金) 19:33:27 ID:CENbthlg0
何故PostMessageで処理しないかというと、なんかウィンドウメッセージは優先順位があるらしく、嫌いだから。
SendMessageならば即座にそっちに処理が其の点安心。
スレッドメッセージならば優先順位は無いと思うから、良いね!ということ。
1160
:
774さん
:2008/12/26(金) 20:11:17 ID:CENbthlg0
PostThreadMessageが上手くいかない・・・
1161
:
774さん
:2008/12/26(金) 20:19:41 ID:CENbthlg0
217 名前:名無し~3.EXE[sage] 投稿日:2008/12/26(金) 18:48:40 ID:sd88u1wC
>《NEWS@もっと!関西》なにわの型破りITベンチャー「フェンリル」残業ゼロ、休暇タップリでも躍進中! | 企業戦略 | 投資・経済・ビジネスの東洋経済オンライン
>
http://www.toyokeizai.net/business/strategy/detail/AC/2a318124c2755ee5f5bc8f151b4100fb/
>グーグルとは、ユーザーがフェンリルのWebブラウザ上でグーグルのスポンサーリンクをクリックすれば、
>そのクリックごとにフェンリルに報酬が入る契約になっている。
>
>本当にこれだけでお金が入るのか?
>入るのだったらクリックするが・・・
---
Sleipnir Part214
http://pc11.2ch.net/test/read.cgi/win/1230041362/217
-----
ちょwwwwwwwww
それで金が入るのかwwwwwwwwww
積極的に押すしwwww
1162
:
774さん
:2008/12/26(金) 20:31:37 ID:CENbthlg0
マイクロソフト爆発しろ!
PostThreadMessageはWM_USER以降しか利用できないなんて何処に書いてあるんだ!
少なくとも1は送信できねーじゃねーか!
1163
:
774さん
:2008/12/26(金) 20:34:06 ID:CENbthlg0
test = 整瑳
1164
:
774さん
:2008/12/26(金) 20:48:16 ID:CENbthlg0
メモリ確保の時間とMutexの同期にかかる時間はどっちの方がでかいのかな?
1165
:
774さん
:2008/12/26(金) 20:59:59 ID:CENbthlg0
Mutexのほうが7.09645倍かかっていると申しております。
1166
:
774さん
:2008/12/26(金) 21:05:13 ID:CENbthlg0
同一プロセス内だからCreticalSectionという手があった。
なんとメモリ確保の0.212188倍!
最速である。
1167
:
774さん
:2008/12/26(金) 21:07:32 ID:CENbthlg0
Mutexは七倍ぐらい、CreticalSectionなら四分の一ぐらいみたい。
charのメモリをnewしてdeleteする時間に比べてね。
1168
:
774さん
:2008/12/26(金) 21:07:49 ID:CENbthlg0
#include <windows.h>
#include <iostream>
#include <string>
const unsigned int count = 10000000;
int main(int argc, char **argv){
DWORD s = GetTickCount();
for(unsigned int i = 0; i < count; ++i){
char *p = new char;
delete p;
}
DWORD e = GetTickCount();
std::cout << e - s << std::endl;
unsigned int diff = e - s;
s = GetTickCount();
HANDLE hMutex = CreateMutex(NULL, FALSE, NULL);
for(unsigned int i = 0; i < count; ++i){
WaitForSingleObject(hMutex, INFINITE);
ReleaseMutex(hMutex);
}
e = GetTickCount();
std::cout << e - s << std::endl;
unsigned int diff2 = e - s;
CloseHandle(hMutex);
CRITICAL_SECTION cs;
s = GetTickCount();
InitializeCriticalSection(&cs);
for(unsigned int i = 0; i < count; ++i){
EnterCriticalSection(&cs);
LeaveCriticalSection(&cs);
}
DeleteCriticalSection(&cs);
e = GetTickCount();
std::cout << e - s << std::endl;
unsigned int diff3 = e - s;
std::cout << (double)diff2 / (double)diff << std::endl;
std::cout << (double)diff3 / (double)diff << std::endl;
std::getline(std::cin, std::string());
}
1169
:
774さん
:2008/12/26(金) 21:26:10 ID:CENbthlg0
よし上手くいった。
今日は枕を高くして寝られます。
1170
:
774さん
:2008/12/27(土) 19:28:19 ID:CENbthlg0
何故、printfにはバイナリを出力する方法が無いんだ!
1171
:
774さん
:2008/12/27(土) 20:48:29 ID:CENbthlg0
取り敢えず、使っているパソコンのキーボードにあるキーのうち、「半角/全角」「-^\@[;:],./\」以外は網羅した。
1172
:
774さん
:2008/12/27(土) 21:26:38 ID:CENbthlg0
ShiftとCtrlとAltは押したときと離した時が分からないと駄目だよな。
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板