codeobscure 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cc46c29d16431aa5724127eb45ff735d61616676
4
- data.tar.gz: a2d88e7530509c538456faf34689e3a4bd83b52a
3
+ metadata.gz: 4f0fed590b8e0d0a7cc9ddd175ad10e9cd55835d
4
+ data.tar.gz: 3deda2e09f16a629884f683cf58977aba8663ffe
5
5
  SHA512:
6
- metadata.gz: 50342df74fc000230cf46a163ca7a8f10027465d7b42ef7fc9dd8a25e12d59989b29cd071fe7ceed11521f07d24afa0fc124ab353d4a318429000f91303238de
7
- data.tar.gz: 7afa08ca24f4e388f133b8c953fcd24b5e8d7642cdf81f680c5be6b5f7b20c34fe45eea806eb23e45be44b81ec6a81523348f354f96502baa534971157a7afa4
6
+ metadata.gz: d34946f8bf2471ea101f88796b773ba4d971c3736c3a5ffa6449bbb78ed30a4088ad0e7466fe987a95bf9636f851f89b0c311231d10fd9496ef801dad47f61b8
7
+ data.tar.gz: 32582c1c8977f7c7d081421ee4157f8f505846edd1a588e3df2f6caaf703dd127788759eeaea67c4f393935d2e78ef9f52a18b37cd9a219f2b8d7791b5ee337c
@@ -1,26 +1,41 @@
1
1
  require_relative "funclist.rb"
2
+ require 'sqlite3'
2
3
  require "colorize"
3
4
  module FiltSymbols
4
5
  @@filt_db_path = "#{File.expand_path '../../..', __FILE__}/filtSymbols"
5
6
  @@table_name = "symbols"
6
7
  @@key_words = ["interface","NSInteger","BOOL","Class","free","M_PI_2","abort","change","top","bottom","NSUIntegerMax","intoString"]
7
8
 
9
+ def self.open_db
10
+ if @@db.nil? || @@db.closed?
11
+ @@db = SQLite3::Database.new(@@filt_db_path)
12
+ end
13
+ end
14
+
8
15
  def self.createTable
9
- if !File.exist? @@filt_db_path
10
- `echo "create table #{@@table_name}(src text,PRIMARY KEY (src));" | sqlite3 #{@@filt_db_path}`
16
+ open_db
17
+ if @@db
18
+ @@db.execute "create table if not exists #{@@table_name}(src text,PRIMARY KEY (src));"
11
19
  end
12
20
  end
13
21
 
14
22
  def self.insertValue(line)
15
- `echo "insert or ignore into #{@@table_name} values('#{line}');" | sqlite3 #{@@filt_db_path}`
23
+ open_db
24
+ @@db.execute "insert or ignore into #{@@table_name} values('#{line}');"
16
25
  end
17
26
 
18
27
  def self.query(line)
19
- `echo "select * from #{@@table_name} where src='#{line}';" | sqlite3 #{@@filt_db_path}`
28
+ open_db
29
+ results = []
30
+ @@db.execute "select * from #{@@table_name} where src='#{line}';" do |row|
31
+ results << row
32
+ end
33
+ results
20
34
  end
21
35
 
22
36
  def self.loadFiltSymbols(path)
23
37
 
38
+ @@db = SQLite3::Database.new(@@filt_db_path)
24
39
  createTable
25
40
 
26
41
  funclist_path = FuncList.genFuncList path , "h" , false
@@ -40,8 +55,6 @@ module FiltSymbols
40
55
  `rm -f #{funclist_path}`
41
56
  end
42
57
 
43
- `sqlite3 #{@@filt_db_path} .dump`
44
-
45
58
  end
46
59
 
47
60
  end
@@ -101,7 +101,6 @@ module FuncList
101
101
  end
102
102
 
103
103
  def self.genFuncList(path,type = "m",need_filt=true,fetch_types=["p","f","c"])
104
- puts "#######################{fetch_types}"
105
104
  capture_methods = []
106
105
  p_methods = []
107
106
  funclist_path = "#{path}/func.list"
@@ -1,4 +1,5 @@
1
1
  require_relative 'filtsymbols.rb'
2
+ require 'sqlite3'
2
3
 
3
4
  class String
4
5
  def upcase_first_letter
@@ -8,27 +9,9 @@ end
8
9
 
9
10
  module Obscure
10
11
 
11
-
12
- @@TABLENAME="symbols"
13
- @@SYMBOL_DB_FILE="symbols"
14
12
  @@STRING_SYMBOL_FILE="func.list"
15
13
  @@IGNORE_NAME="ignoresymbols"
16
14
 
17
- #维护数据库方便日后作排重
18
- def self.createTable
19
- if !File.exist? @@SYMBOL_DB_FILE
20
- `echo "create table #{@@TABLENAME}(src text, des text,PRIMARY KEY (src));" | sqlite3 #{@@SYMBOL_DB_FILE}`
21
- end
22
- end
23
-
24
- def self.insertValue(line,ramdom)
25
- `echo "insert or ignore into #{@@TABLENAME} values('#{line}' ,'#{ramdom}');" | sqlite3 #{@@SYMBOL_DB_FILE}`
26
- end
27
-
28
- def self.query(line)
29
- `echo "select * from #{@@TABLENAME} where src='#{line}';" | sqlite3 #{@@SYMBOL_DB_FILE}`
30
- end
31
-
32
15
  def self.ramdomString
33
16
  `openssl rand -base64 64 | tr -cd 'a-zA-Z' |head -c 16`
34
17
  end
@@ -37,30 +20,26 @@ module Obscure
37
20
  def self.run(root_dir)
38
21
 
39
22
  @@HEAD_FILE="#{root_dir}/codeObfuscation.h"
40
- @@SYMBOL_DB_FILE = "#{root_dir}/#{@@SYMBOL_DB_FILE}"
41
23
  @@STRING_SYMBOL_FILE = "#{root_dir}/#{@@STRING_SYMBOL_FILE}"
42
24
 
43
25
  ignore_symbols = []
44
26
  ignore_path = "#{root_dir}/#{@@IGNORE_NAME}"
45
27
  if File.exist? ignore_path
46
28
  ignore_content = File.read ignore_path
47
- ignore_symbols = ignore_content.gsub(" " , "").split "\n"
29
+ ignore_symbols = ignore_content.gsub(" " , "").split ","
48
30
  end
49
31
 
50
- if File.exist? @@SYMBOL_DB_FILE
51
- `rm -f #{@@SYMBOL_DB_FILE}`
52
- end
53
32
  if File.exists? @@HEAD_FILE
54
33
  `rm -f #{@@HEAD_FILE}`
55
34
  end
56
- createTable
57
-
35
+
58
36
  date = `date`
59
37
  file = File.new @@HEAD_FILE , 'w'
60
38
  file.puts "#ifndef co_codeObfuscation_h"
61
39
  file.puts "#define co_codeObfuscation_h"
62
40
  file.puts "//confuse string at #{date.to_s}"
63
41
 
42
+ #beginTransition
64
43
  symbol_file = File.open(@@STRING_SYMBOL_FILE).read
65
44
  symbol_file.each_line do |line|
66
45
  line_type = line.rstrip.split(":").first
@@ -68,7 +47,6 @@ module Obscure
68
47
  result = FiltSymbols.query(line_content)
69
48
  if result.nil? || result.empty?
70
49
  ramdom = ramdomString
71
- insertValue line_content , ramdom
72
50
  if line_type == "p"
73
51
  result = FiltSymbols.query("set#{line_content.upcase_first_letter}")
74
52
  if result.nil? || result.empty?
@@ -89,10 +67,6 @@ module Obscure
89
67
  file.puts "#endif"
90
68
  file.close
91
69
 
92
- `sqlite3 #{@@SYMBOL_DB_FILE} .dump`
93
- if File.exist? @@SYMBOL_DB_FILE
94
- `rm -f #{@@SYMBOL_DB_FILE}`
95
- end
96
70
  if File.exist? @@STRING_SYMBOL_FILE
97
71
  `rm -f #{@@STRING_SYMBOL_FILE}`
98
72
  end
@@ -1,3 +1,3 @@
1
1
  module Codeobscure
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codeobscure
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - kaich
@@ -86,6 +86,20 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: 1.0.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: sqlite3
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
89
103
  description: Code Obscure Tool.You can use it simplely
90
104
  email:
91
105
  - chengkai1853@163.com